Copy disabled (too large)
Download .txt
Showing preview only (16,528K chars total). Download the full file to get everything.
Repository: Awesome-HarmonyOS/HarmonyOS
Branch: master
Commit: 5d2008e97ea2
Files: 2297
Total size: 43.3 MB
Directory structure:
gitextract_prpumcnz/
├── CNAME
├── Huawei_LiteOS/
│ ├── .github/
│ │ └── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── arch/
│ │ ├── arm/
│ │ │ ├── arm-m/
│ │ │ │ ├── cortex-m0/
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── los_dispatch_gcc.S
│ │ │ │ │ │ └── los_hw_exc_gcc.S
│ │ │ │ │ ├── iar/
│ │ │ │ │ │ └── los_dispatch_iar.S
│ │ │ │ │ ├── keil/
│ │ │ │ │ │ ├── los_dispatch_keil.S
│ │ │ │ │ │ └── los_hw_exc_keil.S
│ │ │ │ │ ├── los_exc.c
│ │ │ │ │ ├── los_exc.inc
│ │ │ │ │ └── los_exc.ph
│ │ │ │ ├── cortex-m3/
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── los_dispatch_gcc.S
│ │ │ │ │ │ └── los_hw_exc_gcc.S
│ │ │ │ │ ├── iar/
│ │ │ │ │ │ └── los_dispatch_iar.S
│ │ │ │ │ ├── keil/
│ │ │ │ │ │ ├── los_dispatch_keil.S
│ │ │ │ │ │ └── los_hw_exc_keil.S
│ │ │ │ │ ├── los_exc.c
│ │ │ │ │ ├── los_exc.inc
│ │ │ │ │ ├── los_exc.ph
│ │ │ │ │ └── test_funcs.S
│ │ │ │ ├── cortex-m4/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── los_dispatch_gcc.S
│ │ │ │ │ │ └── los_hw_exc_gcc.S
│ │ │ │ │ ├── iar/
│ │ │ │ │ │ ├── los_dispatch_iar.S
│ │ │ │ │ │ └── los_hw_exc_iar.S
│ │ │ │ │ ├── keil/
│ │ │ │ │ │ ├── los_dispatch_keil.S
│ │ │ │ │ │ └── los_hw_exc_keil.S
│ │ │ │ │ ├── los_exc.c
│ │ │ │ │ ├── los_exc.inc
│ │ │ │ │ └── los_exc.ph
│ │ │ │ ├── cortex-m7/
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── los_dispatch_gcc.S
│ │ │ │ │ │ └── los_hw_exc_gcc.S
│ │ │ │ │ ├── iar/
│ │ │ │ │ │ └── los_dispatch_iar.S
│ │ │ │ │ ├── keil/
│ │ │ │ │ │ ├── los_dispatch_keil.S
│ │ │ │ │ │ └── los_hw_exc_keil.S
│ │ │ │ │ ├── los_exc.c
│ │ │ │ │ ├── los_exc.inc
│ │ │ │ │ └── los_exc.ph
│ │ │ │ ├── include/
│ │ │ │ │ ├── los_exc.h
│ │ │ │ │ ├── los_hw.h
│ │ │ │ │ ├── los_hw_tick.h
│ │ │ │ │ └── los_hwi.h
│ │ │ │ └── src/
│ │ │ │ ├── los_hw.c
│ │ │ │ ├── los_hw_tick.c
│ │ │ │ └── los_hwi.c
│ │ │ └── common/
│ │ │ └── cmsis/
│ │ │ ├── arm_common_tables.h
│ │ │ ├── arm_const_structs.h
│ │ │ ├── arm_math.h
│ │ │ ├── cmsis_armcc.h
│ │ │ ├── cmsis_armclang.h
│ │ │ ├── cmsis_compiler.h
│ │ │ ├── cmsis_gcc.h
│ │ │ ├── core_armv8mbl.h
│ │ │ ├── core_armv8mml.h
│ │ │ ├── core_cm0.h
│ │ │ ├── core_cm0plus.h
│ │ │ ├── core_cm23.h
│ │ │ ├── core_cm3.h
│ │ │ ├── core_cm33.h
│ │ │ ├── core_cm4.h
│ │ │ ├── core_cm7.h
│ │ │ ├── core_sc000.h
│ │ │ ├── core_sc300.h
│ │ │ └── tz_context.h
│ │ └── msp430/
│ │ ├── include/
│ │ │ ├── los_hw.h
│ │ │ └── los_hwi.h
│ │ └── src/
│ │ ├── ccsmacros.h
│ │ ├── los_dispatch_ccs.asm
│ │ ├── los_dispatch_iar.s43
│ │ ├── los_hw.c
│ │ ├── los_hw_tick.c
│ │ └── los_hwi.c
│ ├── build/
│ │ └── Makefile
│ ├── components/
│ │ ├── connectivity/
│ │ │ ├── agent_tiny/
│ │ │ │ ├── atiny_lwm2m/
│ │ │ │ │ ├── agent_list.h
│ │ │ │ │ ├── agenttiny.c
│ │ │ │ │ ├── atiny_context.h
│ │ │ │ │ ├── atiny_fota_manager.c
│ │ │ │ │ ├── atiny_fota_manager.h
│ │ │ │ │ ├── atiny_fota_state.c
│ │ │ │ │ ├── atiny_fota_state.h
│ │ │ │ │ ├── atiny_rpt.c
│ │ │ │ │ ├── atiny_rpt.h
│ │ │ │ │ ├── connection.c
│ │ │ │ │ ├── connection.h
│ │ │ │ │ ├── firmware_update.c
│ │ │ │ │ ├── firmware_update.h
│ │ │ │ │ ├── object_access_control.c
│ │ │ │ │ ├── object_binary_app_data_container.c
│ │ │ │ │ ├── object_comm.h
│ │ │ │ │ ├── object_connectivity_moni.c
│ │ │ │ │ ├── object_connectivity_stat.c
│ │ │ │ │ ├── object_device.c
│ │ │ │ │ ├── object_firmware.c
│ │ │ │ │ ├── object_location.c
│ │ │ │ │ ├── object_security.c
│ │ │ │ │ ├── object_server.c
│ │ │ │ │ ├── platform_adapter.c
│ │ │ │ │ ├── util_timer.c
│ │ │ │ │ └── util_timer.h
│ │ │ │ └── atiny_mqtt/
│ │ │ │ ├── flash_manager.c
│ │ │ │ ├── flash_manager.h
│ │ │ │ ├── hmac.c
│ │ │ │ ├── hmac.h
│ │ │ │ └── mqtt_client.c
│ │ │ ├── lwm2m/
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── EDL-v1.0
│ │ │ │ ├── EPL-v1.0
│ │ │ │ ├── README.md
│ │ │ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ │ │ ├── TODO
│ │ │ │ ├── about.html
│ │ │ │ ├── core/
│ │ │ │ │ ├── block1.c
│ │ │ │ │ ├── bootstrap.c
│ │ │ │ │ ├── data.c
│ │ │ │ │ ├── discover.c
│ │ │ │ │ ├── er-coap-13/
│ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ ├── er-coap-13.c
│ │ │ │ │ │ └── er-coap-13.h
│ │ │ │ │ ├── internals.h
│ │ │ │ │ ├── json.c
│ │ │ │ │ ├── liblwm2m.c
│ │ │ │ │ ├── liblwm2m.h
│ │ │ │ │ ├── liblwm2m_api.h
│ │ │ │ │ ├── list.c
│ │ │ │ │ ├── lwm2m_utils.c
│ │ │ │ │ ├── management.c
│ │ │ │ │ ├── objects.c
│ │ │ │ │ ├── observe.c
│ │ │ │ │ ├── packet.c
│ │ │ │ │ ├── registration.c
│ │ │ │ │ ├── tlv.c
│ │ │ │ │ ├── transaction.c
│ │ │ │ │ ├── uri.c
│ │ │ │ │ └── wakaama.cmake
│ │ │ │ └── examples/
│ │ │ │ └── shared/
│ │ │ │ ├── commandline.c
│ │ │ │ └── commandline.h
│ │ │ ├── mqtt/
│ │ │ │ ├── .cproject
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .project
│ │ │ │ ├── .settings/
│ │ │ │ │ ├── org.eclipse.cdt.core.prefs
│ │ │ │ │ └── org.eclipse.cdt.ui.prefs
│ │ │ │ ├── .travis.yml
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── MQTTClient-C/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── samples/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── FreeRTOS/
│ │ │ │ │ │ │ └── MQTTEcho.c
│ │ │ │ │ │ └── linux/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── build.sh
│ │ │ │ │ │ └── stdoutsub.c
│ │ │ │ │ ├── src/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── FreeRTOS/
│ │ │ │ │ │ │ ├── MQTTFreeRTOS.c
│ │ │ │ │ │ │ └── MQTTFreeRTOS.h
│ │ │ │ │ │ ├── MQTTClient.c
│ │ │ │ │ │ ├── MQTTClient.h
│ │ │ │ │ │ ├── cc3200/
│ │ │ │ │ │ │ ├── MQTTCC3200.c
│ │ │ │ │ │ │ └── MQTTCC3200.h
│ │ │ │ │ │ ├── linux/
│ │ │ │ │ │ │ ├── MQTTLinux.c
│ │ │ │ │ │ │ └── MQTTLinux.h
│ │ │ │ │ │ └── liteOS/
│ │ │ │ │ │ ├── MQTTliteos.c
│ │ │ │ │ │ └── MQTTliteos.h
│ │ │ │ │ └── test/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ └── test1.c
│ │ │ │ ├── MQTTPacket/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── samples/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── baremetalserial/
│ │ │ │ │ │ │ ├── build
│ │ │ │ │ │ │ ├── ping_nb.c
│ │ │ │ │ │ │ ├── pub0sub1_nb.c
│ │ │ │ │ │ │ ├── transport.c
│ │ │ │ │ │ │ └── transport.h
│ │ │ │ │ │ ├── build
│ │ │ │ │ │ ├── null.c
│ │ │ │ │ │ ├── ping.c
│ │ │ │ │ │ ├── ping_nb.c
│ │ │ │ │ │ ├── pub0sub1.c
│ │ │ │ │ │ ├── pub0sub1_nb.c
│ │ │ │ │ │ ├── qos0pub.c
│ │ │ │ │ │ ├── transport.c
│ │ │ │ │ │ └── transport.h
│ │ │ │ │ ├── src/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── MQTTConnect.h
│ │ │ │ │ │ ├── MQTTConnectClient.c
│ │ │ │ │ │ ├── MQTTConnectServer.c
│ │ │ │ │ │ ├── MQTTDeserializePublish.c
│ │ │ │ │ │ ├── MQTTFormat.c
│ │ │ │ │ │ ├── MQTTFormat.h
│ │ │ │ │ │ ├── MQTTPacket.c
│ │ │ │ │ │ ├── MQTTPacket.h
│ │ │ │ │ │ ├── MQTTPublish.h
│ │ │ │ │ │ ├── MQTTSerializePublish.c
│ │ │ │ │ │ ├── MQTTSubscribe.h
│ │ │ │ │ │ ├── MQTTSubscribeClient.c
│ │ │ │ │ │ ├── MQTTSubscribeServer.c
│ │ │ │ │ │ ├── MQTTUnsubscribe.h
│ │ │ │ │ │ ├── MQTTUnsubscribeClient.c
│ │ │ │ │ │ ├── MQTTUnsubscribeServer.c
│ │ │ │ │ │ └── StackTrace.h
│ │ │ │ │ └── test/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── build_test
│ │ │ │ │ └── test1.c
│ │ │ │ ├── Makefile
│ │ │ │ ├── README.md
│ │ │ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ │ │ ├── about.html
│ │ │ │ ├── edl-v10
│ │ │ │ ├── epl-v10
│ │ │ │ ├── library.properties
│ │ │ │ ├── notice.html
│ │ │ │ ├── travis-build.sh
│ │ │ │ ├── travis-env-vars
│ │ │ │ └── travis-install.sh
│ │ │ └── nb_iot/
│ │ │ └── los_nb_api.c
│ │ ├── fs/
│ │ │ ├── devfs/
│ │ │ │ └── los_devfs.c
│ │ │ ├── fatfs/
│ │ │ │ ├── ff13b/
│ │ │ │ │ ├── LICENSE.txt
│ │ │ │ │ └── source/
│ │ │ │ │ ├── 00history.txt
│ │ │ │ │ ├── 00readme.txt
│ │ │ │ │ ├── default/
│ │ │ │ │ │ └── ffconf.h
│ │ │ │ │ ├── diskio.c
│ │ │ │ │ ├── diskio.h
│ │ │ │ │ ├── ff.c
│ │ │ │ │ ├── ff.h
│ │ │ │ │ ├── ffsystem.c
│ │ │ │ │ ├── ffunicode.c
│ │ │ │ │ └── integer.h
│ │ │ │ └── los_fatfs.c
│ │ │ ├── kifs/
│ │ │ │ └── los_kifs.c
│ │ │ ├── ramfs/
│ │ │ │ └── los_ramfs.c
│ │ │ ├── spiffs/
│ │ │ │ ├── README
│ │ │ │ ├── los_spiffs.c
│ │ │ │ └── spiffs_git/
│ │ │ │ ├── FUZZING.md
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README.md
│ │ │ │ ├── docs/
│ │ │ │ │ ├── TECH_SPEC
│ │ │ │ │ └── TODO
│ │ │ │ └── src/
│ │ │ │ ├── default/
│ │ │ │ │ └── spiffs_config.h
│ │ │ │ ├── spiffs.h
│ │ │ │ ├── spiffs_cache.c
│ │ │ │ ├── spiffs_check.c
│ │ │ │ ├── spiffs_gc.c
│ │ │ │ ├── spiffs_hydrogen.c
│ │ │ │ ├── spiffs_nucleus.c
│ │ │ │ └── spiffs_nucleus.h
│ │ │ └── vfs/
│ │ │ └── los_vfs.c
│ │ ├── lib/
│ │ │ ├── cJSON/
│ │ │ │ ├── cJSON.c
│ │ │ │ └── cJSON.h
│ │ │ └── libc/
│ │ │ ├── errno.c
│ │ │ ├── malloc.c
│ │ │ └── newlib_stub.c
│ │ ├── log/
│ │ │ └── atiny_log.c
│ │ ├── net/
│ │ │ ├── at_device/
│ │ │ │ ├── emtc_bg36/
│ │ │ │ │ ├── bg36.c
│ │ │ │ │ └── bg36.h
│ │ │ │ ├── gprs_sim900a/
│ │ │ │ │ ├── sim900a.c
│ │ │ │ │ └── sim900a.h
│ │ │ │ ├── nb_bc95/
│ │ │ │ │ └── bc95.c
│ │ │ │ └── wifi_esp8266/
│ │ │ │ ├── esp8266.c
│ │ │ │ └── esp8266.h
│ │ │ ├── at_frame/
│ │ │ │ ├── at_api.c
│ │ │ │ └── at_main.c
│ │ │ ├── lwip/
│ │ │ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ │ │ ├── lwip-2.0.3/
│ │ │ │ │ ├── CHANGELOG
│ │ │ │ │ ├── COPYING
│ │ │ │ │ ├── FILES
│ │ │ │ │ ├── README
│ │ │ │ │ ├── UPGRADING
│ │ │ │ │ ├── doc/
│ │ │ │ │ │ ├── FILES
│ │ │ │ │ │ ├── NO_SYS_SampleCode.c
│ │ │ │ │ │ ├── contrib.txt
│ │ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ │ ├── generate.bat
│ │ │ │ │ │ │ ├── generate.sh
│ │ │ │ │ │ │ ├── lwip.Doxyfile
│ │ │ │ │ │ │ └── main_page.h
│ │ │ │ │ │ ├── mdns.txt
│ │ │ │ │ │ ├── mqtt_client.txt
│ │ │ │ │ │ ├── ppp.txt
│ │ │ │ │ │ ├── rawapi.txt
│ │ │ │ │ │ ├── savannah.txt
│ │ │ │ │ │ └── sys_arch.txt
│ │ │ │ │ ├── src/
│ │ │ │ │ │ ├── FILES
│ │ │ │ │ │ ├── Filelists.mk
│ │ │ │ │ │ ├── api/
│ │ │ │ │ │ │ ├── api_lib.c
│ │ │ │ │ │ │ ├── api_msg.c
│ │ │ │ │ │ │ ├── err.c
│ │ │ │ │ │ │ ├── netbuf.c
│ │ │ │ │ │ │ ├── netdb.c
│ │ │ │ │ │ │ ├── netifapi.c
│ │ │ │ │ │ │ ├── sockets.c
│ │ │ │ │ │ │ └── tcpip.c
│ │ │ │ │ │ ├── apps/
│ │ │ │ │ │ │ ├── httpd/
│ │ │ │ │ │ │ │ ├── fs.c
│ │ │ │ │ │ │ │ ├── fsdata.c
│ │ │ │ │ │ │ │ ├── fsdata.h
│ │ │ │ │ │ │ │ ├── httpd.c
│ │ │ │ │ │ │ │ ├── httpd_structs.h
│ │ │ │ │ │ │ │ └── makefsdata/
│ │ │ │ │ │ │ │ ├── makefsdata
│ │ │ │ │ │ │ │ ├── makefsdata.c
│ │ │ │ │ │ │ │ └── readme.txt
│ │ │ │ │ │ │ ├── lwiperf/
│ │ │ │ │ │ │ │ └── lwiperf.c
│ │ │ │ │ │ │ ├── mdns/
│ │ │ │ │ │ │ │ └── mdns.c
│ │ │ │ │ │ │ ├── mqtt/
│ │ │ │ │ │ │ │ └── mqtt.c
│ │ │ │ │ │ │ ├── netbiosns/
│ │ │ │ │ │ │ │ └── netbiosns.c
│ │ │ │ │ │ │ ├── snmp/
│ │ │ │ │ │ │ │ ├── snmp_asn1.c
│ │ │ │ │ │ │ │ ├── snmp_asn1.h
│ │ │ │ │ │ │ │ ├── snmp_core.c
│ │ │ │ │ │ │ │ ├── snmp_core_priv.h
│ │ │ │ │ │ │ │ ├── snmp_mib2.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_icmp.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_interfaces.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_ip.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_snmp.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_system.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_tcp.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_udp.c
│ │ │ │ │ │ │ │ ├── snmp_msg.c
│ │ │ │ │ │ │ │ ├── snmp_msg.h
│ │ │ │ │ │ │ │ ├── snmp_netconn.c
│ │ │ │ │ │ │ │ ├── snmp_pbuf_stream.c
│ │ │ │ │ │ │ │ ├── snmp_pbuf_stream.h
│ │ │ │ │ │ │ │ ├── snmp_raw.c
│ │ │ │ │ │ │ │ ├── snmp_scalar.c
│ │ │ │ │ │ │ │ ├── snmp_table.c
│ │ │ │ │ │ │ │ ├── snmp_threadsync.c
│ │ │ │ │ │ │ │ ├── snmp_traps.c
│ │ │ │ │ │ │ │ ├── snmpv3.c
│ │ │ │ │ │ │ │ ├── snmpv3_dummy.c
│ │ │ │ │ │ │ │ ├── snmpv3_mbedtls.c
│ │ │ │ │ │ │ │ └── snmpv3_priv.h
│ │ │ │ │ │ │ ├── sntp/
│ │ │ │ │ │ │ │ └── sntp.c
│ │ │ │ │ │ │ └── tftp/
│ │ │ │ │ │ │ └── tftp_server.c
│ │ │ │ │ │ ├── core/
│ │ │ │ │ │ │ ├── def.c
│ │ │ │ │ │ │ ├── dns.c
│ │ │ │ │ │ │ ├── inet_chksum.c
│ │ │ │ │ │ │ ├── init.c
│ │ │ │ │ │ │ ├── ip.c
│ │ │ │ │ │ │ ├── ipv4/
│ │ │ │ │ │ │ │ ├── autoip.c
│ │ │ │ │ │ │ │ ├── dhcp.c
│ │ │ │ │ │ │ │ ├── etharp.c
│ │ │ │ │ │ │ │ ├── icmp.c
│ │ │ │ │ │ │ │ ├── igmp.c
│ │ │ │ │ │ │ │ ├── ip4.c
│ │ │ │ │ │ │ │ ├── ip4_addr.c
│ │ │ │ │ │ │ │ └── ip4_frag.c
│ │ │ │ │ │ │ ├── ipv6/
│ │ │ │ │ │ │ │ ├── dhcp6.c
│ │ │ │ │ │ │ │ ├── ethip6.c
│ │ │ │ │ │ │ │ ├── icmp6.c
│ │ │ │ │ │ │ │ ├── inet6.c
│ │ │ │ │ │ │ │ ├── ip6.c
│ │ │ │ │ │ │ │ ├── ip6_addr.c
│ │ │ │ │ │ │ │ ├── ip6_frag.c
│ │ │ │ │ │ │ │ ├── mld6.c
│ │ │ │ │ │ │ │ └── nd6.c
│ │ │ │ │ │ │ ├── mem.c
│ │ │ │ │ │ │ ├── memp.c
│ │ │ │ │ │ │ ├── netif.c
│ │ │ │ │ │ │ ├── pbuf.c
│ │ │ │ │ │ │ ├── raw.c
│ │ │ │ │ │ │ ├── stats.c
│ │ │ │ │ │ │ ├── sys.c
│ │ │ │ │ │ │ ├── tcp.c
│ │ │ │ │ │ │ ├── tcp_in.c
│ │ │ │ │ │ │ ├── tcp_out.c
│ │ │ │ │ │ │ ├── timeouts.c
│ │ │ │ │ │ │ └── udp.c
│ │ │ │ │ │ ├── include/
│ │ │ │ │ │ │ ├── lwip/
│ │ │ │ │ │ │ │ ├── api.h
│ │ │ │ │ │ │ │ ├── apps/
│ │ │ │ │ │ │ │ │ ├── FILES
│ │ │ │ │ │ │ │ │ ├── fs.h
│ │ │ │ │ │ │ │ │ ├── httpd.h
│ │ │ │ │ │ │ │ │ ├── httpd_opts.h
│ │ │ │ │ │ │ │ │ ├── lwiperf.h
│ │ │ │ │ │ │ │ │ ├── mdns.h
│ │ │ │ │ │ │ │ │ ├── mdns_opts.h
│ │ │ │ │ │ │ │ │ ├── mdns_priv.h
│ │ │ │ │ │ │ │ │ ├── mqtt.h
│ │ │ │ │ │ │ │ │ ├── mqtt_opts.h
│ │ │ │ │ │ │ │ │ ├── netbiosns.h
│ │ │ │ │ │ │ │ │ ├── netbiosns_opts.h
│ │ │ │ │ │ │ │ │ ├── snmp.h
│ │ │ │ │ │ │ │ │ ├── snmp_core.h
│ │ │ │ │ │ │ │ │ ├── snmp_mib2.h
│ │ │ │ │ │ │ │ │ ├── snmp_opts.h
│ │ │ │ │ │ │ │ │ ├── snmp_scalar.h
│ │ │ │ │ │ │ │ │ ├── snmp_table.h
│ │ │ │ │ │ │ │ │ ├── snmp_threadsync.h
│ │ │ │ │ │ │ │ │ ├── snmpv3.h
│ │ │ │ │ │ │ │ │ ├── sntp.h
│ │ │ │ │ │ │ │ │ ├── sntp_opts.h
│ │ │ │ │ │ │ │ │ ├── tftp_opts.h
│ │ │ │ │ │ │ │ │ └── tftp_server.h
│ │ │ │ │ │ │ │ ├── arch.h
│ │ │ │ │ │ │ │ ├── autoip.h
│ │ │ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ │ │ ├── def.h
│ │ │ │ │ │ │ │ ├── dhcp.h
│ │ │ │ │ │ │ │ ├── dhcp6.h
│ │ │ │ │ │ │ │ ├── dns.h
│ │ │ │ │ │ │ │ ├── err.h
│ │ │ │ │ │ │ │ ├── errno.h
│ │ │ │ │ │ │ │ ├── etharp.h
│ │ │ │ │ │ │ │ ├── ethip6.h
│ │ │ │ │ │ │ │ ├── icmp.h
│ │ │ │ │ │ │ │ ├── icmp6.h
│ │ │ │ │ │ │ │ ├── igmp.h
│ │ │ │ │ │ │ │ ├── inet.h
│ │ │ │ │ │ │ │ ├── inet_chksum.h
│ │ │ │ │ │ │ │ ├── init.h
│ │ │ │ │ │ │ │ ├── ip.h
│ │ │ │ │ │ │ │ ├── ip4.h
│ │ │ │ │ │ │ │ ├── ip4_addr.h
│ │ │ │ │ │ │ │ ├── ip4_frag.h
│ │ │ │ │ │ │ │ ├── ip6.h
│ │ │ │ │ │ │ │ ├── ip6_addr.h
│ │ │ │ │ │ │ │ ├── ip6_frag.h
│ │ │ │ │ │ │ │ ├── ip_addr.h
│ │ │ │ │ │ │ │ ├── mem.h
│ │ │ │ │ │ │ │ ├── memp.h
│ │ │ │ │ │ │ │ ├── mld6.h
│ │ │ │ │ │ │ │ ├── nd6.h
│ │ │ │ │ │ │ │ ├── netbuf.h
│ │ │ │ │ │ │ │ ├── netdb.h
│ │ │ │ │ │ │ │ ├── netif.h
│ │ │ │ │ │ │ │ ├── netifapi.h
│ │ │ │ │ │ │ │ ├── opt.h
│ │ │ │ │ │ │ │ ├── pbuf.h
│ │ │ │ │ │ │ │ ├── priv/
│ │ │ │ │ │ │ │ │ ├── api_msg.h
│ │ │ │ │ │ │ │ │ ├── memp_priv.h
│ │ │ │ │ │ │ │ │ ├── memp_std.h
│ │ │ │ │ │ │ │ │ ├── nd6_priv.h
│ │ │ │ │ │ │ │ │ ├── tcp_priv.h
│ │ │ │ │ │ │ │ │ └── tcpip_priv.h
│ │ │ │ │ │ │ │ ├── prot/
│ │ │ │ │ │ │ │ │ ├── autoip.h
│ │ │ │ │ │ │ │ │ ├── dhcp.h
│ │ │ │ │ │ │ │ │ ├── dns.h
│ │ │ │ │ │ │ │ │ ├── etharp.h
│ │ │ │ │ │ │ │ │ ├── ethernet.h
│ │ │ │ │ │ │ │ │ ├── icmp.h
│ │ │ │ │ │ │ │ │ ├── icmp6.h
│ │ │ │ │ │ │ │ │ ├── igmp.h
│ │ │ │ │ │ │ │ │ ├── ip.h
│ │ │ │ │ │ │ │ │ ├── ip4.h
│ │ │ │ │ │ │ │ │ ├── ip6.h
│ │ │ │ │ │ │ │ │ ├── mld6.h
│ │ │ │ │ │ │ │ │ ├── nd6.h
│ │ │ │ │ │ │ │ │ ├── tcp.h
│ │ │ │ │ │ │ │ │ └── udp.h
│ │ │ │ │ │ │ │ ├── raw.h
│ │ │ │ │ │ │ │ ├── sio.h
│ │ │ │ │ │ │ │ ├── snmp.h
│ │ │ │ │ │ │ │ ├── sockets.h
│ │ │ │ │ │ │ │ ├── stats.h
│ │ │ │ │ │ │ │ ├── sys.h
│ │ │ │ │ │ │ │ ├── tcp.h
│ │ │ │ │ │ │ │ ├── tcpip.h
│ │ │ │ │ │ │ │ ├── timeouts.h
│ │ │ │ │ │ │ │ └── udp.h
│ │ │ │ │ │ │ ├── netif/
│ │ │ │ │ │ │ │ ├── etharp.h
│ │ │ │ │ │ │ │ ├── ethernet.h
│ │ │ │ │ │ │ │ ├── lowpan6.h
│ │ │ │ │ │ │ │ ├── lowpan6_opts.h
│ │ │ │ │ │ │ │ ├── ppp/
│ │ │ │ │ │ │ │ │ ├── ccp.h
│ │ │ │ │ │ │ │ │ ├── chap-md5.h
│ │ │ │ │ │ │ │ │ ├── chap-new.h
│ │ │ │ │ │ │ │ │ ├── chap_ms.h
│ │ │ │ │ │ │ │ │ ├── eap.h
│ │ │ │ │ │ │ │ │ ├── ecp.h
│ │ │ │ │ │ │ │ │ ├── eui64.h
│ │ │ │ │ │ │ │ │ ├── fsm.h
│ │ │ │ │ │ │ │ │ ├── ipcp.h
│ │ │ │ │ │ │ │ │ ├── ipv6cp.h
│ │ │ │ │ │ │ │ │ ├── lcp.h
│ │ │ │ │ │ │ │ │ ├── magic.h
│ │ │ │ │ │ │ │ │ ├── mppe.h
│ │ │ │ │ │ │ │ │ ├── polarssl/
│ │ │ │ │ │ │ │ │ │ ├── arc4.h
│ │ │ │ │ │ │ │ │ │ ├── des.h
│ │ │ │ │ │ │ │ │ │ ├── md4.h
│ │ │ │ │ │ │ │ │ │ ├── md5.h
│ │ │ │ │ │ │ │ │ │ └── sha1.h
│ │ │ │ │ │ │ │ │ ├── ppp.h
│ │ │ │ │ │ │ │ │ ├── ppp_impl.h
│ │ │ │ │ │ │ │ │ ├── ppp_opts.h
│ │ │ │ │ │ │ │ │ ├── pppapi.h
│ │ │ │ │ │ │ │ │ ├── pppcrypt.h
│ │ │ │ │ │ │ │ │ ├── pppdebug.h
│ │ │ │ │ │ │ │ │ ├── pppoe.h
│ │ │ │ │ │ │ │ │ ├── pppol2tp.h
│ │ │ │ │ │ │ │ │ ├── pppos.h
│ │ │ │ │ │ │ │ │ ├── upap.h
│ │ │ │ │ │ │ │ │ └── vj.h
│ │ │ │ │ │ │ │ └── slipif.h
│ │ │ │ │ │ │ └── posix/
│ │ │ │ │ │ │ ├── errno.h
│ │ │ │ │ │ │ ├── netdb.h
│ │ │ │ │ │ │ └── sys/
│ │ │ │ │ │ │ └── socket.h
│ │ │ │ │ │ └── netif/
│ │ │ │ │ │ ├── FILES
│ │ │ │ │ │ ├── ethernet.c
│ │ │ │ │ │ ├── ethernetif_origin.c
│ │ │ │ │ │ ├── lowpan6.c
│ │ │ │ │ │ ├── ppp/
│ │ │ │ │ │ │ ├── PPPD_FOLLOWUP
│ │ │ │ │ │ │ ├── auth.c
│ │ │ │ │ │ │ ├── ccp.c
│ │ │ │ │ │ │ ├── chap-md5.c
│ │ │ │ │ │ │ ├── chap-new.c
│ │ │ │ │ │ │ ├── chap_ms.c
│ │ │ │ │ │ │ ├── demand.c
│ │ │ │ │ │ │ ├── eap.c
│ │ │ │ │ │ │ ├── ecp.c
│ │ │ │ │ │ │ ├── eui64.c
│ │ │ │ │ │ │ ├── fsm.c
│ │ │ │ │ │ │ ├── ipcp.c
│ │ │ │ │ │ │ ├── ipv6cp.c
│ │ │ │ │ │ │ ├── lcp.c
│ │ │ │ │ │ │ ├── magic.c
│ │ │ │ │ │ │ ├── mppe.c
│ │ │ │ │ │ │ ├── multilink.c
│ │ │ │ │ │ │ ├── polarssl/
│ │ │ │ │ │ │ │ ├── README
│ │ │ │ │ │ │ │ ├── arc4.c
│ │ │ │ │ │ │ │ ├── des.c
│ │ │ │ │ │ │ │ ├── md4.c
│ │ │ │ │ │ │ │ ├── md5.c
│ │ │ │ │ │ │ │ └── sha1.c
│ │ │ │ │ │ │ ├── ppp.c
│ │ │ │ │ │ │ ├── pppapi.c
│ │ │ │ │ │ │ ├── pppcrypt.c
│ │ │ │ │ │ │ ├── pppoe.c
│ │ │ │ │ │ │ ├── pppol2tp.c
│ │ │ │ │ │ │ ├── pppos.c
│ │ │ │ │ │ │ ├── upap.c
│ │ │ │ │ │ │ ├── utils.c
│ │ │ │ │ │ │ └── vj.c
│ │ │ │ │ │ └── slipif.c
│ │ │ │ │ └── test/
│ │ │ │ │ ├── fuzz/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── README
│ │ │ │ │ │ ├── config.h
│ │ │ │ │ │ ├── fuzz.c
│ │ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ │ └── output_to_pcap.sh
│ │ │ │ │ └── unit/
│ │ │ │ │ ├── core/
│ │ │ │ │ │ ├── test_mem.c
│ │ │ │ │ │ ├── test_mem.h
│ │ │ │ │ │ ├── test_pbuf.c
│ │ │ │ │ │ └── test_pbuf.h
│ │ │ │ │ ├── dhcp/
│ │ │ │ │ │ ├── test_dhcp.c
│ │ │ │ │ │ └── test_dhcp.h
│ │ │ │ │ ├── etharp/
│ │ │ │ │ │ ├── test_etharp.c
│ │ │ │ │ │ └── test_etharp.h
│ │ │ │ │ ├── ip4/
│ │ │ │ │ │ ├── test_ip4.c
│ │ │ │ │ │ └── test_ip4.h
│ │ │ │ │ ├── lwip_check.h
│ │ │ │ │ ├── lwip_unittests.c
│ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ ├── mdns/
│ │ │ │ │ │ ├── test_mdns.c
│ │ │ │ │ │ └── test_mdns.h
│ │ │ │ │ ├── tcp/
│ │ │ │ │ │ ├── tcp_helper.c
│ │ │ │ │ │ ├── tcp_helper.h
│ │ │ │ │ │ ├── test_tcp.c
│ │ │ │ │ │ ├── test_tcp.h
│ │ │ │ │ │ ├── test_tcp_oos.c
│ │ │ │ │ │ └── test_tcp_oos.h
│ │ │ │ │ └── udp/
│ │ │ │ │ ├── test_udp.c
│ │ │ │ │ └── test_udp.h
│ │ │ │ ├── lwip_port/
│ │ │ │ │ ├── OS/
│ │ │ │ │ │ ├── ethernetif.c
│ │ │ │ │ │ ├── ethernetif.h
│ │ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ │ └── sys_arch.c
│ │ │ │ │ └── arch/
│ │ │ │ │ ├── bpstruct.h
│ │ │ │ │ ├── cc.h
│ │ │ │ │ ├── cpu.h
│ │ │ │ │ ├── epstruct.h
│ │ │ │ │ ├── init.h
│ │ │ │ │ ├── lib.h
│ │ │ │ │ ├── perf.h
│ │ │ │ │ └── sys_arch.h
│ │ │ │ └── ppp_port/
│ │ │ │ ├── osport/
│ │ │ │ │ ├── iodev.c
│ │ │ │ │ ├── kernel.c
│ │ │ │ │ ├── osport.h
│ │ │ │ │ └── ring.c
│ │ │ │ └── ppppos/
│ │ │ │ ├── atcmd.c
│ │ │ │ └── demo.c
│ │ │ └── sal/
│ │ │ └── atiny_socket.c
│ │ ├── ota/
│ │ │ ├── flag_operate/
│ │ │ │ ├── flag_manager.c
│ │ │ │ ├── flag_manager.h
│ │ │ │ ├── upgrade_flag.c
│ │ │ │ └── upgrade_flag.h
│ │ │ ├── package/
│ │ │ │ ├── opt/
│ │ │ │ │ ├── package_sha256.c
│ │ │ │ │ ├── package_sha256.h
│ │ │ │ │ ├── package_sha256_rsa2048.c
│ │ │ │ │ └── package_sha256_rsa2048.h
│ │ │ │ ├── package.c
│ │ │ │ ├── package_checksum.c
│ │ │ │ ├── package_checksum.h
│ │ │ │ ├── package_device.h
│ │ │ │ ├── package_head.c
│ │ │ │ ├── package_head.h
│ │ │ │ ├── package_writer.c
│ │ │ │ └── package_writer.h
│ │ │ ├── script/
│ │ │ │ ├── config.xml
│ │ │ │ ├── gen_key.py
│ │ │ │ ├── package_software.py
│ │ │ │ ├── private_key.pem
│ │ │ │ └── public_key.pem
│ │ │ ├── sota/
│ │ │ │ ├── sota.c
│ │ │ │ ├── sota_hal.c
│ │ │ │ └── sota_hal.h
│ │ │ └── utility/
│ │ │ ├── ota_crc.c
│ │ │ └── ota_crc.h
│ │ └── security/
│ │ └── mbedtls/
│ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ ├── mbedtls-2.6.0/
│ │ │ ├── .github/
│ │ │ │ ├── issue_template.md
│ │ │ │ └── pull_request_template.md
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── CMakeLists.txt
│ │ │ ├── ChangeLog
│ │ │ ├── DartConfiguration.tcl
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── apache-2.0.txt
│ │ │ ├── circle.yml
│ │ │ ├── configs/
│ │ │ │ ├── README.txt
│ │ │ │ ├── config-ccm-psk-tls1_2.h
│ │ │ │ ├── config-mini-tls1_1.h
│ │ │ │ ├── config-no-entropy.h
│ │ │ │ ├── config-picocoin.h
│ │ │ │ ├── config-suite-b.h
│ │ │ │ └── config-thread.h
│ │ │ ├── doxygen/
│ │ │ │ ├── input/
│ │ │ │ │ ├── doc_encdec.h
│ │ │ │ │ ├── doc_hashing.h
│ │ │ │ │ ├── doc_mainpage.h
│ │ │ │ │ ├── doc_rng.h
│ │ │ │ │ ├── doc_ssltls.h
│ │ │ │ │ ├── doc_tcpip.h
│ │ │ │ │ └── doc_x509.h
│ │ │ │ └── mbedtls.doxyfile
│ │ │ ├── include/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── mbedtls/
│ │ │ │ ├── aes.h
│ │ │ │ ├── aesni.h
│ │ │ │ ├── arc4.h
│ │ │ │ ├── asn1.h
│ │ │ │ ├── asn1write.h
│ │ │ │ ├── base64.h
│ │ │ │ ├── bignum.h
│ │ │ │ ├── blowfish.h
│ │ │ │ ├── bn_mul.h
│ │ │ │ ├── camellia.h
│ │ │ │ ├── ccm.h
│ │ │ │ ├── certs.h
│ │ │ │ ├── check_config.h
│ │ │ │ ├── cipher.h
│ │ │ │ ├── cipher_internal.h
│ │ │ │ ├── cmac.h
│ │ │ │ ├── compat-1.3.h
│ │ │ │ ├── config.h
│ │ │ │ ├── ctr_drbg.h
│ │ │ │ ├── debug.h
│ │ │ │ ├── des.h
│ │ │ │ ├── dhm.h
│ │ │ │ ├── ecdh.h
│ │ │ │ ├── ecdsa.h
│ │ │ │ ├── ecjpake.h
│ │ │ │ ├── ecp.h
│ │ │ │ ├── ecp_internal.h
│ │ │ │ ├── entropy.h
│ │ │ │ ├── entropy_poll.h
│ │ │ │ ├── error.h
│ │ │ │ ├── gcm.h
│ │ │ │ ├── havege.h
│ │ │ │ ├── hmac_drbg.h
│ │ │ │ ├── md.h
│ │ │ │ ├── md2.h
│ │ │ │ ├── md4.h
│ │ │ │ ├── md5.h
│ │ │ │ ├── md_internal.h
│ │ │ │ ├── memory_buffer_alloc.h
│ │ │ │ ├── net.h
│ │ │ │ ├── net_sockets.h
│ │ │ │ ├── oid.h
│ │ │ │ ├── padlock.h
│ │ │ │ ├── pem.h
│ │ │ │ ├── pk.h
│ │ │ │ ├── pk_internal.h
│ │ │ │ ├── pkcs11.h
│ │ │ │ ├── pkcs12.h
│ │ │ │ ├── pkcs5.h
│ │ │ │ ├── platform.h
│ │ │ │ ├── platform_time.h
│ │ │ │ ├── ripemd160.h
│ │ │ │ ├── rsa.h
│ │ │ │ ├── sha1.h
│ │ │ │ ├── sha256.h
│ │ │ │ ├── sha512.h
│ │ │ │ ├── ssl.h
│ │ │ │ ├── ssl_cache.h
│ │ │ │ ├── ssl_ciphersuites.h
│ │ │ │ ├── ssl_cookie.h
│ │ │ │ ├── ssl_internal.h
│ │ │ │ ├── ssl_ticket.h
│ │ │ │ ├── threading.h
│ │ │ │ ├── timing.h
│ │ │ │ ├── version.h
│ │ │ │ ├── x509.h
│ │ │ │ ├── x509_crl.h
│ │ │ │ ├── x509_crt.h
│ │ │ │ ├── x509_csr.h
│ │ │ │ └── xtea.h
│ │ │ ├── library/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Makefile
│ │ │ │ ├── aes.c
│ │ │ │ ├── aesni.c
│ │ │ │ ├── arc4.c
│ │ │ │ ├── asn1parse.c
│ │ │ │ ├── asn1write.c
│ │ │ │ ├── base64.c
│ │ │ │ ├── bignum.c
│ │ │ │ ├── blowfish.c
│ │ │ │ ├── camellia.c
│ │ │ │ ├── ccm.c
│ │ │ │ ├── certs.c
│ │ │ │ ├── cipher.c
│ │ │ │ ├── cipher_wrap.c
│ │ │ │ ├── cmac.c
│ │ │ │ ├── ctr_drbg.c
│ │ │ │ ├── debug.c
│ │ │ │ ├── des.c
│ │ │ │ ├── dhm.c
│ │ │ │ ├── ecdh.c
│ │ │ │ ├── ecdsa.c
│ │ │ │ ├── ecjpake.c
│ │ │ │ ├── ecp.c
│ │ │ │ ├── ecp_curves.c
│ │ │ │ ├── entropy.c
│ │ │ │ ├── entropy_poll.c
│ │ │ │ ├── error.c
│ │ │ │ ├── gcm.c
│ │ │ │ ├── havege.c
│ │ │ │ ├── hmac_drbg.c
│ │ │ │ ├── md.c
│ │ │ │ ├── md2.c
│ │ │ │ ├── md4.c
│ │ │ │ ├── md5.c
│ │ │ │ ├── md_wrap.c
│ │ │ │ ├── memory_buffer_alloc.c
│ │ │ │ ├── net_sockets.c
│ │ │ │ ├── oid.c
│ │ │ │ ├── padlock.c
│ │ │ │ ├── pem.c
│ │ │ │ ├── pk.c
│ │ │ │ ├── pk_wrap.c
│ │ │ │ ├── pkcs11.c
│ │ │ │ ├── pkcs12.c
│ │ │ │ ├── pkcs5.c
│ │ │ │ ├── pkparse.c
│ │ │ │ ├── pkwrite.c
│ │ │ │ ├── platform.c
│ │ │ │ ├── ripemd160.c
│ │ │ │ ├── rsa.c
│ │ │ │ ├── sha1.c
│ │ │ │ ├── sha256.c
│ │ │ │ ├── sha512.c
│ │ │ │ ├── ssl_cache.c
│ │ │ │ ├── ssl_ciphersuites.c
│ │ │ │ ├── ssl_cli.c
│ │ │ │ ├── ssl_cookie.c
│ │ │ │ ├── ssl_srv.c
│ │ │ │ ├── ssl_ticket.c
│ │ │ │ ├── ssl_tls.c
│ │ │ │ ├── threading.c
│ │ │ │ ├── timing.c
│ │ │ │ ├── version.c
│ │ │ │ ├── version_features.c
│ │ │ │ ├── x509.c
│ │ │ │ ├── x509_create.c
│ │ │ │ ├── x509_crl.c
│ │ │ │ ├── x509_crt.c
│ │ │ │ ├── x509_csr.c
│ │ │ │ ├── x509write_crt.c
│ │ │ │ ├── x509write_csr.c
│ │ │ │ └── xtea.c
│ │ │ ├── programs/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Makefile
│ │ │ │ ├── aes/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── aescrypt2.c
│ │ │ │ │ └── crypt_and_hash.c
│ │ │ │ ├── hash/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── generic_sum.c
│ │ │ │ │ └── hello.c
│ │ │ │ ├── pkey/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── dh_client.c
│ │ │ │ │ ├── dh_genprime.c
│ │ │ │ │ ├── dh_prime.txt
│ │ │ │ │ ├── dh_server.c
│ │ │ │ │ ├── ecdh_curve25519.c
│ │ │ │ │ ├── ecdsa.c
│ │ │ │ │ ├── gen_key.c
│ │ │ │ │ ├── key_app.c
│ │ │ │ │ ├── key_app_writer.c
│ │ │ │ │ ├── mpi_demo.c
│ │ │ │ │ ├── pk_decrypt.c
│ │ │ │ │ ├── pk_encrypt.c
│ │ │ │ │ ├── pk_sign.c
│ │ │ │ │ ├── pk_verify.c
│ │ │ │ │ ├── rsa_decrypt.c
│ │ │ │ │ ├── rsa_encrypt.c
│ │ │ │ │ ├── rsa_genkey.c
│ │ │ │ │ ├── rsa_priv.txt
│ │ │ │ │ ├── rsa_pub.txt
│ │ │ │ │ ├── rsa_sign.c
│ │ │ │ │ ├── rsa_sign_pss.c
│ │ │ │ │ ├── rsa_verify.c
│ │ │ │ │ └── rsa_verify_pss.c
│ │ │ │ ├── random/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── gen_entropy.c
│ │ │ │ │ ├── gen_random_ctr_drbg.c
│ │ │ │ │ └── gen_random_havege.c
│ │ │ │ ├── ssl/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── dtls_client.c
│ │ │ │ │ ├── dtls_server.c
│ │ │ │ │ ├── mini_client.c
│ │ │ │ │ ├── ssl_client1.c
│ │ │ │ │ ├── ssl_client2.c
│ │ │ │ │ ├── ssl_fork_server.c
│ │ │ │ │ ├── ssl_mail_client.c
│ │ │ │ │ ├── ssl_pthread_server.c
│ │ │ │ │ ├── ssl_server.c
│ │ │ │ │ └── ssl_server2.c
│ │ │ │ ├── test/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── benchmark.c
│ │ │ │ │ ├── selftest.c
│ │ │ │ │ ├── ssl_cert_test.c
│ │ │ │ │ └── udp_proxy.c
│ │ │ │ ├── util/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── pem2der.c
│ │ │ │ │ └── strerror.c
│ │ │ │ ├── wince_main.c
│ │ │ │ └── x509/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── cert_app.c
│ │ │ │ ├── cert_req.c
│ │ │ │ ├── cert_write.c
│ │ │ │ ├── crl_app.c
│ │ │ │ └── req_app.c
│ │ │ ├── scripts/
│ │ │ │ ├── apidoc_full.sh
│ │ │ │ ├── bump_version.sh
│ │ │ │ ├── config.pl
│ │ │ │ ├── data_files/
│ │ │ │ │ ├── error.fmt
│ │ │ │ │ ├── rename-1.3-2.0.txt
│ │ │ │ │ ├── version_features.fmt
│ │ │ │ │ ├── vs2010-app-template.vcxproj
│ │ │ │ │ ├── vs2010-main-template.vcxproj
│ │ │ │ │ ├── vs2010-sln-template.sln
│ │ │ │ │ ├── vs6-app-template.dsp
│ │ │ │ │ ├── vs6-main-template.dsp
│ │ │ │ │ └── vs6-workspace-template.dsw
│ │ │ │ ├── ecc-heap.sh
│ │ │ │ ├── find-mem-leak.cocci
│ │ │ │ ├── footprint.sh
│ │ │ │ ├── generate_errors.pl
│ │ │ │ ├── generate_features.pl
│ │ │ │ ├── generate_visualc_files.pl
│ │ │ │ ├── malloc-init.pl
│ │ │ │ ├── massif_max.pl
│ │ │ │ ├── memory.sh
│ │ │ │ ├── output_env.sh
│ │ │ │ ├── rename.pl
│ │ │ │ ├── rm-malloc-cast.cocci
│ │ │ │ └── tmp_ignore_makefiles.sh
│ │ │ ├── tests/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Descriptions.txt
│ │ │ │ ├── Makefile
│ │ │ │ ├── compat.sh
│ │ │ │ ├── data_files/
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── Readme-x509.txt
│ │ │ │ │ ├── bitstring-in-dn.pem
│ │ │ │ │ ├── cert_example_multi.crt
│ │ │ │ │ ├── cert_example_multi_nocn.crt
│ │ │ │ │ ├── cert_example_wildcard.crt
│ │ │ │ │ ├── cert_md2.crt
│ │ │ │ │ ├── cert_md4.crt
│ │ │ │ │ ├── cert_md5.crt
│ │ │ │ │ ├── cert_sha1.crt
│ │ │ │ │ ├── cert_sha224.crt
│ │ │ │ │ ├── cert_sha256.crt
│ │ │ │ │ ├── cert_sha384.crt
│ │ │ │ │ ├── cert_sha512.crt
│ │ │ │ │ ├── cert_v1_with_ext.crt
│ │ │ │ │ ├── cli-rsa-sha1.crt
│ │ │ │ │ ├── cli-rsa-sha256.crt
│ │ │ │ │ ├── cli-rsa.key
│ │ │ │ │ ├── cli.opensslconf
│ │ │ │ │ ├── cli2.crt
│ │ │ │ │ ├── cli2.key
│ │ │ │ │ ├── crl-ec-sha1.pem
│ │ │ │ │ ├── crl-ec-sha224.pem
│ │ │ │ │ ├── crl-ec-sha256.pem
│ │ │ │ │ ├── crl-ec-sha384.pem
│ │ │ │ │ ├── crl-ec-sha512.pem
│ │ │ │ │ ├── crl-future.pem
│ │ │ │ │ ├── crl-malformed-trailing-spaces.pem
│ │ │ │ │ ├── crl-rsa-pss-sha1-badsign.pem
│ │ │ │ │ ├── crl-rsa-pss-sha1.pem
│ │ │ │ │ ├── crl-rsa-pss-sha224.pem
│ │ │ │ │ ├── crl-rsa-pss-sha256.pem
│ │ │ │ │ ├── crl-rsa-pss-sha384.pem
│ │ │ │ │ ├── crl-rsa-pss-sha512.pem
│ │ │ │ │ ├── crl.pem
│ │ │ │ │ ├── crl_cat_ec-rsa.pem
│ │ │ │ │ ├── crl_cat_ecfut-rsa.pem
│ │ │ │ │ ├── crl_cat_rsa-ec.pem
│ │ │ │ │ ├── crl_cat_rsabadpem-ec.pem
│ │ │ │ │ ├── crl_expired.pem
│ │ │ │ │ ├── crl_md2.pem
│ │ │ │ │ ├── crl_md4.pem
│ │ │ │ │ ├── crl_md5.pem
│ │ │ │ │ ├── crl_sha1.pem
│ │ │ │ │ ├── crl_sha224.pem
│ │ │ │ │ ├── crl_sha256.pem
│ │ │ │ │ ├── crl_sha384.pem
│ │ │ │ │ ├── crl_sha512.pem
│ │ │ │ │ ├── crt_cat_rsaexp-ec.pem
│ │ │ │ │ ├── dh.1000.pem
│ │ │ │ │ ├── dh.optlen.pem
│ │ │ │ │ ├── dhparams.pem
│ │ │ │ │ ├── dir-maxpath/
│ │ │ │ │ │ ├── 00.crt
│ │ │ │ │ │ ├── 00.key
│ │ │ │ │ │ ├── 01.crt
│ │ │ │ │ │ ├── 01.key
│ │ │ │ │ │ ├── 02.crt
│ │ │ │ │ │ ├── 02.key
│ │ │ │ │ │ ├── 03.crt
│ │ │ │ │ │ ├── 03.key
│ │ │ │ │ │ ├── 04.crt
│ │ │ │ │ │ ├── 04.key
│ │ │ │ │ │ ├── 05.crt
│ │ │ │ │ │ ├── 05.key
│ │ │ │ │ │ ├── 06.crt
│ │ │ │ │ │ ├── 06.key
│ │ │ │ │ │ ├── 07.crt
│ │ │ │ │ │ ├── 07.key
│ │ │ │ │ │ ├── 08.crt
│ │ │ │ │ │ ├── 08.key
│ │ │ │ │ │ ├── 09.crt
│ │ │ │ │ │ ├── 09.key
│ │ │ │ │ │ ├── 10.crt
│ │ │ │ │ │ ├── 10.key
│ │ │ │ │ │ ├── 11.crt
│ │ │ │ │ │ ├── 11.key
│ │ │ │ │ │ ├── 12.crt
│ │ │ │ │ │ ├── 12.key
│ │ │ │ │ │ ├── 13.crt
│ │ │ │ │ │ ├── 13.key
│ │ │ │ │ │ ├── 14.crt
│ │ │ │ │ │ ├── 14.key
│ │ │ │ │ │ ├── 15.crt
│ │ │ │ │ │ ├── 15.key
│ │ │ │ │ │ ├── 16.crt
│ │ │ │ │ │ ├── 16.key
│ │ │ │ │ │ ├── 17.crt
│ │ │ │ │ │ ├── 17.key
│ │ │ │ │ │ ├── 18.crt
│ │ │ │ │ │ ├── 18.key
│ │ │ │ │ │ ├── 19.crt
│ │ │ │ │ │ ├── 19.key
│ │ │ │ │ │ ├── 20.crt
│ │ │ │ │ │ ├── 20.key
│ │ │ │ │ │ ├── Readme.txt
│ │ │ │ │ │ ├── c00.pem
│ │ │ │ │ │ ├── c01.pem
│ │ │ │ │ │ ├── c02.pem
│ │ │ │ │ │ ├── c03.pem
│ │ │ │ │ │ ├── c04.pem
│ │ │ │ │ │ ├── c05.pem
│ │ │ │ │ │ ├── c06.pem
│ │ │ │ │ │ ├── c07.pem
│ │ │ │ │ │ ├── c08.pem
│ │ │ │ │ │ ├── c09.pem
│ │ │ │ │ │ ├── c10.pem
│ │ │ │ │ │ ├── c11.pem
│ │ │ │ │ │ ├── c12.pem
│ │ │ │ │ │ ├── c13.pem
│ │ │ │ │ │ ├── c14.pem
│ │ │ │ │ │ ├── c15.pem
│ │ │ │ │ │ ├── c16.pem
│ │ │ │ │ │ ├── c17.pem
│ │ │ │ │ │ ├── c18.pem
│ │ │ │ │ │ ├── c19.pem
│ │ │ │ │ │ ├── c20.pem
│ │ │ │ │ │ ├── int.opensslconf
│ │ │ │ │ │ └── long.sh
│ │ │ │ │ ├── dir1/
│ │ │ │ │ │ └── test-ca.crt
│ │ │ │ │ ├── dir2/
│ │ │ │ │ │ ├── test-ca.crt
│ │ │ │ │ │ └── test-ca2.crt
│ │ │ │ │ ├── dir3/
│ │ │ │ │ │ ├── Readme
│ │ │ │ │ │ ├── test-ca.crt
│ │ │ │ │ │ └── test-ca2.crt
│ │ │ │ │ ├── dir4/
│ │ │ │ │ │ ├── Readme
│ │ │ │ │ │ ├── cert11.crt
│ │ │ │ │ │ ├── cert12.crt
│ │ │ │ │ │ ├── cert13.crt
│ │ │ │ │ │ ├── cert14.crt
│ │ │ │ │ │ ├── cert21.crt
│ │ │ │ │ │ ├── cert22.crt
│ │ │ │ │ │ ├── cert23.crt
│ │ │ │ │ │ ├── cert31.crt
│ │ │ │ │ │ ├── cert32.crt
│ │ │ │ │ │ ├── cert33.crt
│ │ │ │ │ │ ├── cert34.crt
│ │ │ │ │ │ ├── cert41.crt
│ │ │ │ │ │ ├── cert42.crt
│ │ │ │ │ │ ├── cert43.crt
│ │ │ │ │ │ ├── cert44.crt
│ │ │ │ │ │ ├── cert45.crt
│ │ │ │ │ │ ├── cert51.crt
│ │ │ │ │ │ ├── cert52.crt
│ │ │ │ │ │ ├── cert53.crt
│ │ │ │ │ │ ├── cert54.crt
│ │ │ │ │ │ ├── cert61.crt
│ │ │ │ │ │ ├── cert62.crt
│ │ │ │ │ │ ├── cert63.crt
│ │ │ │ │ │ ├── cert71.crt
│ │ │ │ │ │ ├── cert72.crt
│ │ │ │ │ │ ├── cert73.crt
│ │ │ │ │ │ ├── cert74.crt
│ │ │ │ │ │ ├── cert81.crt
│ │ │ │ │ │ ├── cert82.crt
│ │ │ │ │ │ ├── cert83.crt
│ │ │ │ │ │ ├── cert91.crt
│ │ │ │ │ │ └── cert92.crt
│ │ │ │ │ ├── ec_224_prv.pem
│ │ │ │ │ ├── ec_224_pub.pem
│ │ │ │ │ ├── ec_256_prv.pem
│ │ │ │ │ ├── ec_256_pub.pem
│ │ │ │ │ ├── ec_384_prv.pem
│ │ │ │ │ ├── ec_384_pub.pem
│ │ │ │ │ ├── ec_521_prv.pem
│ │ │ │ │ ├── ec_521_pub.pem
│ │ │ │ │ ├── ec_bp256_prv.pem
│ │ │ │ │ ├── ec_bp256_pub.pem
│ │ │ │ │ ├── ec_bp384_prv.pem
│ │ │ │ │ ├── ec_bp384_pub.pem
│ │ │ │ │ ├── ec_bp512_prv.pem
│ │ │ │ │ ├── ec_bp512_pub.pem
│ │ │ │ │ ├── ec_prv.noopt.der
│ │ │ │ │ ├── ec_prv.pk8.der
│ │ │ │ │ ├── ec_prv.pk8.pem
│ │ │ │ │ ├── ec_prv.pk8.pw.der
│ │ │ │ │ ├── ec_prv.pk8.pw.pem
│ │ │ │ │ ├── ec_prv.sec1.der
│ │ │ │ │ ├── ec_prv.sec1.pem
│ │ │ │ │ ├── ec_prv.sec1.pw.pem
│ │ │ │ │ ├── ec_prv.specdom.der
│ │ │ │ │ ├── ec_pub.der
│ │ │ │ │ ├── ec_pub.pem
│ │ │ │ │ ├── enco-ca-prstr.pem
│ │ │ │ │ ├── enco-cert-utf8str.pem
│ │ │ │ │ ├── format_gen.key
│ │ │ │ │ ├── format_gen.pub
│ │ │ │ │ ├── format_pkcs12.fmt
│ │ │ │ │ ├── format_rsa.key
│ │ │ │ │ ├── hash_file_1
│ │ │ │ │ ├── hash_file_2
│ │ │ │ │ ├── hash_file_3
│ │ │ │ │ ├── hash_file_4
│ │ │ │ │ ├── hash_file_5
│ │ │ │ │ ├── keyUsage.decipherOnly.crt
│ │ │ │ │ ├── keyfile
│ │ │ │ │ ├── keyfile.3des
│ │ │ │ │ ├── keyfile.aes128
│ │ │ │ │ ├── keyfile.aes192
│ │ │ │ │ ├── keyfile.aes256
│ │ │ │ │ ├── keyfile.des
│ │ │ │ │ ├── mpi_10
│ │ │ │ │ ├── mpi_too_big
│ │ │ │ │ ├── passwd.psk
│ │ │ │ │ ├── pkcs8_pbe_sha1_2des.key
│ │ │ │ │ ├── pkcs8_pbe_sha1_3des.der
│ │ │ │ │ ├── pkcs8_pbe_sha1_3des.key
│ │ │ │ │ ├── pkcs8_pbe_sha1_rc4_128.key
│ │ │ │ │ ├── pkcs8_pbes2_pbkdf2_3des.der
│ │ │ │ │ ├── pkcs8_pbes2_pbkdf2_3des.key
│ │ │ │ │ ├── pkcs8_pbes2_pbkdf2_des.key
│ │ │ │ │ ├── print_c.pl
│ │ │ │ │ ├── rsa4096_prv.pem
│ │ │ │ │ ├── rsa4096_pub.pem
│ │ │ │ │ ├── server1-nospace.crt
│ │ │ │ │ ├── server1-v1.crt
│ │ │ │ │ ├── server1.cert_type.crt
│ │ │ │ │ ├── server1.crt
│ │ │ │ │ ├── server1.ext_ku.crt
│ │ │ │ │ ├── server1.key
│ │ │ │ │ ├── server1.key_usage.crt
│ │ │ │ │ ├── server1.pubkey
│ │ │ │ │ ├── server1.req.cert_type
│ │ │ │ │ ├── server1.req.key_usage
│ │ │ │ │ ├── server1.req.ku-ct
│ │ │ │ │ ├── server1.req.md4
│ │ │ │ │ ├── server1.req.md5
│ │ │ │ │ ├── server1.req.sha1
│ │ │ │ │ ├── server1.req.sha224
│ │ │ │ │ ├── server1.req.sha256
│ │ │ │ │ ├── server1.req.sha384
│ │ │ │ │ ├── server1.req.sha512
│ │ │ │ │ ├── server1.v1.crt
│ │ │ │ │ ├── server10.key
│ │ │ │ │ ├── server10_int3_int-ca2.crt
│ │ │ │ │ ├── server10_int3_int-ca2_ca.crt
│ │ │ │ │ ├── server1_ca.crt
│ │ │ │ │ ├── server2-badsign.crt
│ │ │ │ │ ├── server2-sha256.crt
│ │ │ │ │ ├── server2-v1-chain.crt
│ │ │ │ │ ├── server2-v1.crt
│ │ │ │ │ ├── server2.crt
│ │ │ │ │ ├── server2.key
│ │ │ │ │ ├── server2.ku-ds.crt
│ │ │ │ │ ├── server2.ku-ds_ke.crt
│ │ │ │ │ ├── server2.ku-ka.crt
│ │ │ │ │ ├── server2.ku-ke.crt
│ │ │ │ │ ├── server3.crt
│ │ │ │ │ ├── server3.key
│ │ │ │ │ ├── server4.crt
│ │ │ │ │ ├── server4.key
│ │ │ │ │ ├── server5-badsign.crt
│ │ │ │ │ ├── server5-der0.crt
│ │ │ │ │ ├── server5-der1a.crt
│ │ │ │ │ ├── server5-der1b.crt
│ │ │ │ │ ├── server5-der2.crt
│ │ │ │ │ ├── server5-der4.crt
│ │ │ │ │ ├── server5-der8.crt
│ │ │ │ │ ├── server5-der9.crt
│ │ │ │ │ ├── server5-expired.crt
│ │ │ │ │ ├── server5-future.crt
│ │ │ │ │ ├── server5-selfsigned.crt
│ │ │ │ │ ├── server5-sha1.crt
│ │ │ │ │ ├── server5-sha224.crt
│ │ │ │ │ ├── server5-sha384.crt
│ │ │ │ │ ├── server5-sha512.crt
│ │ │ │ │ ├── server5.crt
│ │ │ │ │ ├── server5.eku-cli.crt
│ │ │ │ │ ├── server5.eku-cs.crt
│ │ │ │ │ ├── server5.eku-cs_any.crt
│ │ │ │ │ ├── server5.eku-srv.crt
│ │ │ │ │ ├── server5.eku-srv_cli.crt
│ │ │ │ │ ├── server5.key
│ │ │ │ │ ├── server5.ku-ds.crt
│ │ │ │ │ ├── server5.ku-ka.crt
│ │ │ │ │ ├── server5.ku-ke.crt
│ │ │ │ │ ├── server5.req.ku.sha1
│ │ │ │ │ ├── server5.req.sha1
│ │ │ │ │ ├── server5.req.sha224
│ │ │ │ │ ├── server5.req.sha256
│ │ │ │ │ ├── server5.req.sha384
│ │ │ │ │ ├── server5.req.sha512
│ │ │ │ │ ├── server6-ss-child.crt
│ │ │ │ │ ├── server6.crt
│ │ │ │ │ ├── server6.key
│ │ │ │ │ ├── server7.crt
│ │ │ │ │ ├── server7.key
│ │ │ │ │ ├── server7_all_space.crt
│ │ │ │ │ ├── server7_int-ca.crt
│ │ │ │ │ ├── server7_int-ca_ca2.crt
│ │ │ │ │ ├── server7_pem_space.crt
│ │ │ │ │ ├── server7_trailing_space.crt
│ │ │ │ │ ├── server8.crt
│ │ │ │ │ ├── server8.key
│ │ │ │ │ ├── server8_int-ca2.crt
│ │ │ │ │ ├── server9-bad-mgfhash.crt
│ │ │ │ │ ├── server9-bad-saltlen.crt
│ │ │ │ │ ├── server9-badsign.crt
│ │ │ │ │ ├── server9-defaults.crt
│ │ │ │ │ ├── server9-sha224.crt
│ │ │ │ │ ├── server9-sha256.crt
│ │ │ │ │ ├── server9-sha384.crt
│ │ │ │ │ ├── server9-sha512.crt
│ │ │ │ │ ├── server9-with-ca.crt
│ │ │ │ │ ├── server9.crt
│ │ │ │ │ ├── server9.key
│ │ │ │ │ ├── server9.req.sha1
│ │ │ │ │ ├── server9.req.sha224
│ │ │ │ │ ├── server9.req.sha256
│ │ │ │ │ ├── server9.req.sha384
│ │ │ │ │ ├── server9.req.sha512
│ │ │ │ │ ├── test-ca-sha1.crt
│ │ │ │ │ ├── test-ca-sha256.crt
│ │ │ │ │ ├── test-ca-v1.crt
│ │ │ │ │ ├── test-ca.crt
│ │ │ │ │ ├── test-ca.key
│ │ │ │ │ ├── test-ca.opensslconf
│ │ │ │ │ ├── test-ca2.crt
│ │ │ │ │ ├── test-ca2.key
│ │ │ │ │ ├── test-ca2.ku-crl.crt
│ │ │ │ │ ├── test-ca2.ku-crt.crt
│ │ │ │ │ ├── test-ca2.ku-crt_crl.crt
│ │ │ │ │ ├── test-ca2.ku-ds.crt
│ │ │ │ │ ├── test-ca2_cat-future-invalid.crt
│ │ │ │ │ ├── test-ca2_cat-future-present.crt
│ │ │ │ │ ├── test-ca2_cat-past-invalid.crt
│ │ │ │ │ ├── test-ca2_cat-past-present.crt
│ │ │ │ │ ├── test-ca2_cat-present-future.crt
│ │ │ │ │ ├── test-ca2_cat-present-past.crt
│ │ │ │ │ ├── test-ca_cat12.crt
│ │ │ │ │ ├── test-ca_cat21.crt
│ │ │ │ │ ├── test-int-ca.crt
│ │ │ │ │ ├── test-int-ca.key
│ │ │ │ │ ├── test-int-ca2.crt
│ │ │ │ │ ├── test-int-ca2.key
│ │ │ │ │ ├── test-int-ca3.crt
│ │ │ │ │ └── test-int-ca3.key
│ │ │ │ ├── git-scripts/
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── pre-push.sh
│ │ │ │ ├── scripts/
│ │ │ │ │ ├── all.sh
│ │ │ │ │ ├── basic-build-test.sh
│ │ │ │ │ ├── check-doxy-blocks.pl
│ │ │ │ │ ├── check-generated-files.sh
│ │ │ │ │ ├── check-names.sh
│ │ │ │ │ ├── curves.pl
│ │ │ │ │ ├── doxygen.sh
│ │ │ │ │ ├── gen_ctr_drbg.pl
│ │ │ │ │ ├── gen_gcm_decrypt.pl
│ │ │ │ │ ├── gen_gcm_encrypt.pl
│ │ │ │ │ ├── gen_pkcs1_v21_sign_verify.pl
│ │ │ │ │ ├── generate-afl-tests.sh
│ │ │ │ │ ├── generate_code.pl
│ │ │ │ │ ├── key-exchanges.pl
│ │ │ │ │ ├── list-enum-consts.pl
│ │ │ │ │ ├── list-identifiers.sh
│ │ │ │ │ ├── list-macros.sh
│ │ │ │ │ ├── list-symbols.sh
│ │ │ │ │ ├── recursion.pl
│ │ │ │ │ ├── run-test-suites.pl
│ │ │ │ │ ├── tcp_client.pl
│ │ │ │ │ ├── test-ref-configs.pl
│ │ │ │ │ ├── travis-log-failure.sh
│ │ │ │ │ └── yotta-build.sh
│ │ │ │ ├── ssl-opt.sh
│ │ │ │ └── suites/
│ │ │ │ ├── helpers.function
│ │ │ │ ├── main_test.function
│ │ │ │ ├── test_suite_aes.cbc.data
│ │ │ │ ├── test_suite_aes.cfb.data
│ │ │ │ ├── test_suite_aes.ecb.data
│ │ │ │ ├── test_suite_aes.function
│ │ │ │ ├── test_suite_aes.rest.data
│ │ │ │ ├── test_suite_arc4.data
│ │ │ │ ├── test_suite_arc4.function
│ │ │ │ ├── test_suite_asn1write.data
│ │ │ │ ├── test_suite_asn1write.function
│ │ │ │ ├── test_suite_base64.data
│ │ │ │ ├── test_suite_base64.function
│ │ │ │ ├── test_suite_blowfish.data
│ │ │ │ ├── test_suite_blowfish.function
│ │ │ │ ├── test_suite_camellia.data
│ │ │ │ ├── test_suite_camellia.function
│ │ │ │ ├── test_suite_ccm.data
│ │ │ │ ├── test_suite_ccm.function
│ │ │ │ ├── test_suite_cipher.aes.data
│ │ │ │ ├── test_suite_cipher.arc4.data
│ │ │ │ ├── test_suite_cipher.blowfish.data
│ │ │ │ ├── test_suite_cipher.camellia.data
│ │ │ │ ├── test_suite_cipher.ccm.data
│ │ │ │ ├── test_suite_cipher.des.data
│ │ │ │ ├── test_suite_cipher.function
│ │ │ │ ├── test_suite_cipher.gcm.data
│ │ │ │ ├── test_suite_cipher.null.data
│ │ │ │ ├── test_suite_cipher.padding.data
│ │ │ │ ├── test_suite_cmac.data
│ │ │ │ ├── test_suite_cmac.function
│ │ │ │ ├── test_suite_ctr_drbg.data
│ │ │ │ ├── test_suite_ctr_drbg.function
│ │ │ │ ├── test_suite_debug.data
│ │ │ │ ├── test_suite_debug.function
│ │ │ │ ├── test_suite_des.data
│ │ │ │ ├── test_suite_des.function
│ │ │ │ ├── test_suite_dhm.data
│ │ │ │ ├── test_suite_dhm.function
│ │ │ │ ├── test_suite_ecdh.data
│ │ │ │ ├── test_suite_ecdh.function
│ │ │ │ ├── test_suite_ecdsa.data
│ │ │ │ ├── test_suite_ecdsa.function
│ │ │ │ ├── test_suite_ecjpake.data
│ │ │ │ ├── test_suite_ecjpake.function
│ │ │ │ ├── test_suite_ecp.data
│ │ │ │ ├── test_suite_ecp.function
│ │ │ │ ├── test_suite_entropy.data
│ │ │ │ ├── test_suite_entropy.function
│ │ │ │ ├── test_suite_error.data
│ │ │ │ ├── test_suite_error.function
│ │ │ │ ├── test_suite_gcm.aes128_de.data
│ │ │ │ ├── test_suite_gcm.aes128_en.data
│ │ │ │ ├── test_suite_gcm.aes192_de.data
│ │ │ │ ├── test_suite_gcm.aes192_en.data
│ │ │ │ ├── test_suite_gcm.aes256_de.data
│ │ │ │ ├── test_suite_gcm.aes256_en.data
│ │ │ │ ├── test_suite_gcm.camellia.data
│ │ │ │ ├── test_suite_gcm.function
│ │ │ │ ├── test_suite_hmac_drbg.function
│ │ │ │ ├── test_suite_hmac_drbg.misc.data
│ │ │ │ ├── test_suite_hmac_drbg.no_reseed.data
│ │ │ │ ├── test_suite_hmac_drbg.nopr.data
│ │ │ │ ├── test_suite_hmac_drbg.pr.data
│ │ │ │ ├── test_suite_md.data
│ │ │ │ ├── test_suite_md.function
│ │ │ │ ├── test_suite_mdx.data
│ │ │ │ ├── test_suite_mdx.function
│ │ │ │ ├── test_suite_memory_buffer_alloc.data
│ │ │ │ ├── test_suite_memory_buffer_alloc.function
│ │ │ │ ├── test_suite_mpi.data
│ │ │ │ ├── test_suite_mpi.function
│ │ │ │ ├── test_suite_pem.data
│ │ │ │ ├── test_suite_pem.function
│ │ │ │ ├── test_suite_pk.data
│ │ │ │ ├── test_suite_pk.function
│ │ │ │ ├── test_suite_pkcs1_v15.data
│ │ │ │ ├── test_suite_pkcs1_v15.function
│ │ │ │ ├── test_suite_pkcs1_v21.data
│ │ │ │ ├── test_suite_pkcs1_v21.function
│ │ │ │ ├── test_suite_pkcs5.data
│ │ │ │ ├── test_suite_pkcs5.function
│ │ │ │ ├── test_suite_pkparse.data
│ │ │ │ ├── test_suite_pkparse.function
│ │ │ │ ├── test_suite_pkwrite.data
│ │ │ │ ├── test_suite_pkwrite.function
│ │ │ │ ├── test_suite_rsa.data
│ │ │ │ ├── test_suite_rsa.function
│ │ │ │ ├── test_suite_shax.data
│ │ │ │ ├── test_suite_shax.function
│ │ │ │ ├── test_suite_ssl.data
│ │ │ │ ├── test_suite_ssl.function
│ │ │ │ ├── test_suite_timing.data
│ │ │ │ ├── test_suite_timing.function
│ │ │ │ ├── test_suite_version.data
│ │ │ │ ├── test_suite_version.function
│ │ │ │ ├── test_suite_x509parse.data
│ │ │ │ ├── test_suite_x509parse.function
│ │ │ │ ├── test_suite_x509write.data
│ │ │ │ ├── test_suite_x509write.function
│ │ │ │ ├── test_suite_xtea.data
│ │ │ │ └── test_suite_xtea.function
│ │ │ ├── visualc/
│ │ │ │ └── VS2010/
│ │ │ │ ├── aescrypt2.vcxproj
│ │ │ │ ├── benchmark.vcxproj
│ │ │ │ ├── cert_app.vcxproj
│ │ │ │ ├── cert_req.vcxproj
│ │ │ │ ├── cert_write.vcxproj
│ │ │ │ ├── crl_app.vcxproj
│ │ │ │ ├── crypt_and_hash.vcxproj
│ │ │ │ ├── dh_client.vcxproj
│ │ │ │ ├── dh_genprime.vcxproj
│ │ │ │ ├── dh_server.vcxproj
│ │ │ │ ├── dtls_client.vcxproj
│ │ │ │ ├── dtls_server.vcxproj
│ │ │ │ ├── ecdh_curve25519.vcxproj
│ │ │ │ ├── ecdsa.vcxproj
│ │ │ │ ├── gen_entropy.vcxproj
│ │ │ │ ├── gen_key.vcxproj
│ │ │ │ ├── gen_random_ctr_drbg.vcxproj
│ │ │ │ ├── gen_random_havege.vcxproj
│ │ │ │ ├── generic_sum.vcxproj
│ │ │ │ ├── hello.vcxproj
│ │ │ │ ├── key_app.vcxproj
│ │ │ │ ├── key_app_writer.vcxproj
│ │ │ │ ├── mbedTLS.sln
│ │ │ │ ├── mbedTLS.vcxproj
│ │ │ │ ├── md5sum.vcxproj
│ │ │ │ ├── mini_client.vcxproj
│ │ │ │ ├── mpi_demo.vcxproj
│ │ │ │ ├── pem2der.vcxproj
│ │ │ │ ├── pk_decrypt.vcxproj
│ │ │ │ ├── pk_encrypt.vcxproj
│ │ │ │ ├── pk_sign.vcxproj
│ │ │ │ ├── pk_verify.vcxproj
│ │ │ │ ├── req_app.vcxproj
│ │ │ │ ├── rsa_decrypt.vcxproj
│ │ │ │ ├── rsa_encrypt.vcxproj
│ │ │ │ ├── rsa_genkey.vcxproj
│ │ │ │ ├── rsa_sign.vcxproj
│ │ │ │ ├── rsa_sign_pss.vcxproj
│ │ │ │ ├── rsa_verify.vcxproj
│ │ │ │ ├── rsa_verify_pss.vcxproj
│ │ │ │ ├── selftest.vcxproj
│ │ │ │ ├── sha1sum.vcxproj
│ │ │ │ ├── sha2sum.vcxproj
│ │ │ │ ├── ssl_cert_test.vcxproj
│ │ │ │ ├── ssl_client1.vcxproj
│ │ │ │ ├── ssl_client2.vcxproj
│ │ │ │ ├── ssl_fork_server.vcxproj
│ │ │ │ ├── ssl_mail_client.vcxproj
│ │ │ │ ├── ssl_server.vcxproj
│ │ │ │ ├── ssl_server2.vcxproj
│ │ │ │ ├── strerror.vcxproj
│ │ │ │ └── udp_proxy.vcxproj
│ │ │ └── yotta/
│ │ │ ├── .gitignore
│ │ │ ├── create-module.sh
│ │ │ └── data/
│ │ │ ├── README.md
│ │ │ ├── adjust-config.sh
│ │ │ ├── entropy_hardware_poll.c
│ │ │ ├── example-authcrypt/
│ │ │ │ ├── README.md
│ │ │ │ └── main.cpp
│ │ │ ├── example-benchmark/
│ │ │ │ ├── README.md
│ │ │ │ └── main.cpp
│ │ │ ├── example-hashing/
│ │ │ │ ├── README.md
│ │ │ │ └── main.cpp
│ │ │ ├── example-selftest/
│ │ │ │ ├── README.md
│ │ │ │ └── main.cpp
│ │ │ ├── module.json
│ │ │ └── target_config.h
│ │ └── mbedtls_port/
│ │ ├── dtls_interface.c
│ │ ├── dtls_interface.h
│ │ ├── entropy_hardware_poll.c
│ │ ├── los_mbedtls_config.h
│ │ ├── los_mbedtls_config_cert.h
│ │ ├── los_mbedtls_config_psk.h
│ │ ├── net_sockets_alt.c
│ │ ├── timing_alt.c
│ │ └── timing_alt.h
│ ├── demos/
│ │ ├── agenttiny_lwm2m/
│ │ │ ├── agent_tiny_cmd_ioctl.c
│ │ │ ├── agent_tiny_cmd_ioctl.h
│ │ │ ├── agent_tiny_demo.c
│ │ │ └── agent_tiny_demo.h
│ │ ├── agenttiny_mqtt/
│ │ │ ├── agent_tiny_demo.c
│ │ │ └── agent_tiny_demo.h
│ │ ├── dtls_server/
│ │ │ ├── test_dtls_server.c
│ │ │ └── test_dtls_server.h
│ │ ├── fs/
│ │ │ ├── fatfs_demo.c
│ │ │ ├── fs_common.c
│ │ │ ├── fs_common.h
│ │ │ └── spiffs_demo.c
│ │ ├── ipv6_client/
│ │ │ └── client_demo.c
│ │ ├── kernel/
│ │ │ ├── api/
│ │ │ │ ├── los_api_dynamic_mem.c
│ │ │ │ ├── los_api_event.c
│ │ │ │ ├── los_api_interrupt.c
│ │ │ │ ├── los_api_list.c
│ │ │ │ ├── los_api_msgqueue.c
│ │ │ │ ├── los_api_mutex.c
│ │ │ │ ├── los_api_sem.c
│ │ │ │ ├── los_api_static_mem.c
│ │ │ │ ├── los_api_systick.c
│ │ │ │ ├── los_api_task.c
│ │ │ │ ├── los_api_timer.c
│ │ │ │ ├── los_demo_entry.c
│ │ │ │ └── los_inspect_entry.c
│ │ │ └── include/
│ │ │ ├── los_api_dynamic_mem.h
│ │ │ ├── los_api_event.h
│ │ │ ├── los_api_interrupt.h
│ │ │ ├── los_api_list.h
│ │ │ ├── los_api_msgqueue.h
│ │ │ ├── los_api_mutex.h
│ │ │ ├── los_api_sem.h
│ │ │ ├── los_api_static_mem.h
│ │ │ ├── los_api_systick.h
│ │ │ ├── los_api_task.h
│ │ │ ├── los_api_timer.h
│ │ │ ├── los_demo_debug.h
│ │ │ ├── los_demo_entry.h
│ │ │ └── los_inspect_entry.h
│ │ └── nbiot_without_atiny/
│ │ ├── nb_demo.c
│ │ └── sota_demo.c
│ ├── doc/
│ │ ├── Huawei_LiteOS_Developer_Guide_en.md
│ │ ├── Huawei_LiteOS_Developer_Guide_zh.md
│ │ ├── Huawei_LiteOS_SDK_Coap_LwM2M_Developer_Guide_en.md
│ │ ├── Huawei_LiteOS_SDK_Coap_LwM2M_Developer_Guide_zh.md
│ │ ├── Huawei_LiteOS_SDK_Developer_Guide.md
│ │ ├── Huawei_LiteOS_SDK_MQTT_Developer_Guide.md
│ │ ├── LiteOS_Code_Info.md
│ │ ├── LiteOS_Commit_Message.md
│ │ ├── LiteOS_Contribute_Guide_GitGUI.md
│ │ ├── LiteOS_Supported_board_list.md
│ │ └── meta/
│ │ ├── DevGuide/
│ │ │ └── readme.md
│ │ └── guides/
│ │ └── readme.md
│ ├── include/
│ │ ├── at_device/
│ │ │ └── bc95.h
│ │ ├── at_frame/
│ │ │ ├── at_api.h
│ │ │ └── at_main.h
│ │ ├── atiny_error.h
│ │ ├── atiny_lwm2m/
│ │ │ └── agenttiny.h
│ │ ├── atiny_mqtt/
│ │ │ └── mqtt_client.h
│ │ ├── fs/
│ │ │ ├── los_devfs.h
│ │ │ ├── los_fatfs.h
│ │ │ ├── los_kifs.h
│ │ │ ├── los_ramfs.h
│ │ │ ├── los_spiffs.h
│ │ │ ├── los_vfs.h
│ │ │ └── sys/
│ │ │ ├── errno.h
│ │ │ ├── fcntl.h
│ │ │ └── stat.h
│ │ ├── log/
│ │ │ └── atiny_log.h
│ │ ├── nb_iot/
│ │ │ └── los_nb_api.h
│ │ ├── osdepends/
│ │ │ └── atiny_osdep.h
│ │ ├── ota/
│ │ │ ├── hwpatch_errno.h
│ │ │ ├── ota_api.h
│ │ │ ├── package.h
│ │ │ └── recover_image.h
│ │ ├── sal/
│ │ │ └── atiny_socket.h
│ │ └── sota/
│ │ └── sota.h
│ ├── kernel/
│ │ ├── Makefile
│ │ ├── base/
│ │ │ ├── Makefile
│ │ │ ├── core/
│ │ │ │ ├── Makefile
│ │ │ │ ├── los_priqueue.c
│ │ │ │ ├── los_priqueue.inc
│ │ │ │ ├── los_swtmr.c
│ │ │ │ ├── los_swtmr.inc
│ │ │ │ ├── los_sys.c
│ │ │ │ ├── los_sys.inc
│ │ │ │ ├── los_task.c
│ │ │ │ ├── los_task.inc
│ │ │ │ ├── los_tick.c
│ │ │ │ ├── los_tick.inc
│ │ │ │ ├── los_timeslice.c
│ │ │ │ └── los_timeslice.inc
│ │ │ ├── include/
│ │ │ │ ├── los_base.ph
│ │ │ │ ├── los_err.ph
│ │ │ │ ├── los_event.ph
│ │ │ │ ├── los_heap.ph
│ │ │ │ ├── los_list.ph
│ │ │ │ ├── los_membox.ph
│ │ │ │ ├── los_memcheck.ph
│ │ │ │ ├── los_memory.ph
│ │ │ │ ├── los_memstat.ph
│ │ │ │ ├── los_multipledlinkhead.ph
│ │ │ │ ├── los_mux.ph
│ │ │ │ ├── los_printf.ph
│ │ │ │ ├── los_priqueue.ph
│ │ │ │ ├── los_queue.ph
│ │ │ │ ├── los_sem.ph
│ │ │ │ ├── los_slab.ph
│ │ │ │ ├── los_swtmr.ph
│ │ │ │ ├── los_sys.ph
│ │ │ │ ├── los_task.ph
│ │ │ │ ├── los_tick.ph
│ │ │ │ ├── los_timeslice.ph
│ │ │ │ └── los_typedef.ph
│ │ │ ├── ipc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── los_event.c
│ │ │ │ ├── los_event.inc
│ │ │ │ ├── los_mux.c
│ │ │ │ ├── los_mux.inc
│ │ │ │ ├── los_queue.c
│ │ │ │ ├── los_queue.inc
│ │ │ │ ├── los_sem.c
│ │ │ │ └── los_sem.inc
│ │ │ ├── mem/
│ │ │ │ ├── Makefile
│ │ │ │ ├── bestfit/
│ │ │ │ │ ├── los_memory.c
│ │ │ │ │ ├── los_memory.inc
│ │ │ │ │ ├── los_multipledlinkhead.c
│ │ │ │ │ └── los_multipledlinkhead.inc
│ │ │ │ ├── bestfit_little/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── los_heap.c
│ │ │ │ │ └── los_memory.c
│ │ │ │ ├── common/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── los_memcheck.c
│ │ │ │ │ ├── los_memstat.c
│ │ │ │ │ ├── los_memstat.inc
│ │ │ │ │ ├── los_slab.c
│ │ │ │ │ └── los_slabmem.c
│ │ │ │ ├── membox/
│ │ │ │ │ └── los_membox.c
│ │ │ │ └── tlsf/
│ │ │ │ ├── Makefile
│ │ │ │ └── los_memory.c
│ │ │ ├── misc/
│ │ │ │ ├── Makefile
│ │ │ │ └── los_misc.c
│ │ │ └── om/
│ │ │ ├── Makefile
│ │ │ ├── los_err.c
│ │ │ └── los_err.inc
│ │ ├── extended/
│ │ │ ├── Makefile
│ │ │ ├── include/
│ │ │ │ └── los_tickless.ph
│ │ │ └── tickless/
│ │ │ ├── los_tickless.c
│ │ │ └── los_tickless.inc
│ │ ├── include/
│ │ │ ├── los_base.h
│ │ │ ├── los_compiler.h
│ │ │ ├── los_config.h
│ │ │ ├── los_err.h
│ │ │ ├── los_errno.h
│ │ │ ├── los_event.h
│ │ │ ├── los_heap.h
│ │ │ ├── los_list.h
│ │ │ ├── los_membox.h
│ │ │ ├── los_memcheck.h
│ │ │ ├── los_memory.h
│ │ │ ├── los_mux.h
│ │ │ ├── los_queue.h
│ │ │ ├── los_sem.h
│ │ │ ├── los_slab.h
│ │ │ ├── los_swtmr.h
│ │ │ ├── los_sys.h
│ │ │ ├── los_task.h
│ │ │ ├── los_tick.h
│ │ │ ├── los_tickless.h
│ │ │ └── los_typedef.h
│ │ └── los_init.c
│ ├── osdepends/
│ │ └── liteos/
│ │ ├── atiny_osdep.c
│ │ └── cmsis/
│ │ ├── 1.0/
│ │ │ ├── cmsis_liteos1.c
│ │ │ └── cmsis_os1.h
│ │ ├── 2.0/
│ │ │ ├── cmsis_liteos2.c
│ │ │ └── cmsis_os2.h
│ │ ├── Makefile
│ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ ├── cmsis_liteos.c
│ │ └── cmsis_os.h
│ ├── targets/
│ │ ├── Cloud_STM32F429IGTx_FIRE/
│ │ │ ├── Drivers/
│ │ │ │ ├── STM32F4xx_HAL_Driver/
│ │ │ │ │ ├── Inc/
│ │ │ │ │ │ ├── Legacy/
│ │ │ │ │ │ │ ├── stm32_hal_legacy.h
│ │ │ │ │ │ │ └── stm32f4xx_hal_can_legacy.h
│ │ │ │ │ │ ├── stm32_assert_template.h
│ │ │ │ │ │ ├── stm32f4xx_hal.h
│ │ │ │ │ │ ├── stm32f4xx_hal_adc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_adc_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_can.h
│ │ │ │ │ │ ├── stm32f4xx_hal_cec.h
│ │ │ │ │ │ ├── stm32f4xx_hal_conf_template.h
│ │ │ │ │ │ ├── stm32f4xx_hal_cortex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_crc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_cryp.h
│ │ │ │ │ │ ├── stm32f4xx_hal_cryp_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dac.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dac_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dcmi.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dcmi_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_def.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dfsdm.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dma.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dma2d.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dma_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dsi.h
│ │ │ │ │ │ ├── stm32f4xx_hal_eth.h
│ │ │ │ │ │ ├── stm32f4xx_hal_flash.h
│ │ │ │ │ │ ├── stm32f4xx_hal_flash_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_flash_ramfunc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_fmpi2c.h
│ │ │ │ │ │ ├── stm32f4xx_hal_fmpi2c_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_gpio.h
│ │ │ │ │ │ ├── stm32f4xx_hal_gpio_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_hash.h
│ │ │ │ │ │ ├── stm32f4xx_hal_hash_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_hcd.h
│ │ │ │ │ │ ├── stm32f4xx_hal_i2c.h
│ │ │ │ │ │ ├── stm32f4xx_hal_i2c_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_i2s.h
│ │ │ │ │ │ ├── stm32f4xx_hal_i2s_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_irda.h
│ │ │ │ │ │ ├── stm32f4xx_hal_iwdg.h
│ │ │ │ │ │ ├── stm32f4xx_hal_lptim.h
│ │ │ │ │ │ ├── stm32f4xx_hal_ltdc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_ltdc_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_mmc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_nand.h
│ │ │ │ │ │ ├── stm32f4xx_hal_nor.h
│ │ │ │ │ │ ├── stm32f4xx_hal_pccard.h
│ │ │ │ │ │ ├── stm32f4xx_hal_pcd.h
│ │ │ │ │ │ ├── stm32f4xx_hal_pcd_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_pwr.h
│ │ │ │ │ │ ├── stm32f4xx_hal_pwr_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_qspi.h
│ │ │ │ │ │ ├── stm32f4xx_hal_rcc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_rcc_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_rng.h
│ │ │ │ │ │ ├── stm32f4xx_hal_rtc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_rtc_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_sai.h
│ │ │ │ │ │ ├── stm32f4xx_hal_sai_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_sd.h
│ │ │ │ │ │ ├── stm32f4xx_hal_sdram.h
│ │ │ │ │ │ ├── stm32f4xx_hal_smartcard.h
│ │ │ │ │ │ ├── stm32f4xx_hal_spdifrx.h
│ │ │ │ │ │ ├── stm32f4xx_hal_spi.h
│ │ │ │ │ │ ├── stm32f4xx_hal_sram.h
│ │ │ │ │ │ ├── stm32f4xx_hal_tim.h
│ │ │ │ │ │ ├── stm32f4xx_hal_tim_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_uart.h
│ │ │ │ │ │ ├── stm32f4xx_hal_usart.h
│ │ │ │ │ │ └── stm32f4xx_hal_wwdg.h
│ │ │ │ │ └── Src/
│ │ │ │ │ ├── stm32f4xx_hal.c
│ │ │ │ │ ├── stm32f4xx_hal_adc.c
│ │ │ │ │ ├── stm32f4xx_hal_adc_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_can.c
│ │ │ │ │ ├── stm32f4xx_hal_cec.c
│ │ │ │ │ ├── stm32f4xx_hal_cortex.c
│ │ │ │ │ ├── stm32f4xx_hal_crc.c
│ │ │ │ │ ├── stm32f4xx_hal_cryp.c
│ │ │ │ │ ├── stm32f4xx_hal_cryp_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_dac.c
│ │ │ │ │ ├── stm32f4xx_hal_dac_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_dcmi.c
│ │ │ │ │ ├── stm32f4xx_hal_dcmi_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_dfsdm.c
│ │ │ │ │ ├── stm32f4xx_hal_dma.c
│ │ │ │ │ ├── stm32f4xx_hal_dma2d.c
│ │ │ │ │ ├── stm32f4xx_hal_dma_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_dsi.c
│ │ │ │ │ ├── stm32f4xx_hal_eth.c
│ │ │ │ │ ├── stm32f4xx_hal_flash.c
│ │ │ │ │ ├── stm32f4xx_hal_flash_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_flash_ramfunc.c
│ │ │ │ │ ├── stm32f4xx_hal_fmpi2c.c
│ │ │ │ │ ├── stm32f4xx_hal_fmpi2c_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_gpio.c
│ │ │ │ │ ├── stm32f4xx_hal_hash.c
│ │ │ │ │ ├── stm32f4xx_hal_hash_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_hcd.c
│ │ │ │ │ ├── stm32f4xx_hal_i2c.c
│ │ │ │ │ ├── stm32f4xx_hal_i2c_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_i2s.c
│ │ │ │ │ ├── stm32f4xx_hal_i2s_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_irda.c
│ │ │ │ │ ├── stm32f4xx_hal_iwdg.c
│ │ │ │ │ ├── stm32f4xx_hal_lptim.c
│ │ │ │ │ ├── stm32f4xx_hal_ltdc.c
│ │ │ │ │ ├── stm32f4xx_hal_ltdc_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_mmc.c
│ │ │ │ │ ├── stm32f4xx_hal_msp_template.c
│ │ │ │ │ ├── stm32f4xx_hal_nand.c
│ │ │ │ │ ├── stm32f4xx_hal_nor.c
│ │ │ │ │ ├── stm32f4xx_hal_pccard.c
│ │ │ │ │ ├── stm32f4xx_hal_pcd.c
│ │ │ │ │ ├── stm32f4xx_hal_pcd_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_pwr.c
│ │ │ │ │ ├── stm32f4xx_hal_pwr_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_qspi.c
│ │ │ │ │ ├── stm32f4xx_hal_rcc.c
│ │ │ │ │ ├── stm32f4xx_hal_rcc_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_rng.c
│ │ │ │ │ ├── stm32f4xx_hal_rtc.c
│ │ │ │ │ ├── stm32f4xx_hal_rtc_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_sai.c
│ │ │ │ │ ├── stm32f4xx_hal_sai_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_sd.c
│ │ │ │ │ ├── stm32f4xx_hal_sdram.c
│ │ │ │ │ ├── stm32f4xx_hal_smartcard.c
│ │ │ │ │ ├── stm32f4xx_hal_spdifrx.c
│ │ │ │ │ ├── stm32f4xx_hal_spi.c
│ │ │ │ │ ├── stm32f4xx_hal_sram.c
│ │ │ │ │ ├── stm32f4xx_hal_tim.c
│ │ │ │ │ ├── stm32f4xx_hal_tim_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_timebase_rtc_alarm_template.c
│ │ │ │ │ ├── stm32f4xx_hal_timebase_rtc_wakeup_template.c
│ │ │ │ │ ├── stm32f4xx_hal_timebase_tim_template.c
│ │ │ │ │ ├── stm32f4xx_hal_uart.c
│ │ │ │ │ ├── stm32f4xx_hal_usart.c
│ │ │ │ │ └── stm32f4xx_hal_wwdg.c
│ │ │ │ └── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ │ ├── EWARM/
│ │ │ │ ├── Huawei_LiteOS.ewd
│ │ │ │ ├── Huawei_LiteOS.ewp
│ │ │ │ ├── Huawei_LiteOS.eww
│ │ │ │ ├── STM32F429IGTx-LiteOS.icf
│ │ │ │ └── los_startup_iar.s
│ │ │ ├── GCC/
│ │ │ │ ├── Makefile
│ │ │ │ ├── Makefile_Sota
│ │ │ │ ├── STM32F429IGTx_LiteOS.ld
│ │ │ │ ├── STM32F429IGTx_LiteOS_bootloader.ld
│ │ │ │ ├── config.mk
│ │ │ │ ├── config_demos/
│ │ │ │ │ ├── config_bootloader.mk
│ │ │ │ │ ├── config_lwm2m.mk
│ │ │ │ │ ├── config_mqtt.mk
│ │ │ │ │ ├── config_sota.mk
│ │ │ │ │ └── config_sota_without_checksum.mk
│ │ │ │ ├── los_startup_gcc.s
│ │ │ │ └── prune.mk
│ │ │ ├── Hardware/
│ │ │ │ ├── Inc/
│ │ │ │ │ ├── hal_flash.h
│ │ │ │ │ ├── hal_iwdg.h
│ │ │ │ │ ├── hal_rng.h
│ │ │ │ │ └── hal_spi_flash.h
│ │ │ │ └── Src/
│ │ │ │ ├── hal_flash.c
│ │ │ │ ├── hal_iwdg.c
│ │ │ │ ├── hal_rng.c
│ │ │ │ └── hal_spi_flash.c
│ │ │ ├── Inc/
│ │ │ │ ├── at_hal.h
│ │ │ │ ├── board.h
│ │ │ │ ├── common.h
│ │ │ │ ├── dwt.h
│ │ │ │ ├── eth.h
│ │ │ │ ├── flash_adaptor.h
│ │ │ │ ├── main.h
│ │ │ │ ├── ota_port.h
│ │ │ │ ├── stm32f429xx.h
│ │ │ │ ├── stm32f4xx.h
│ │ │ │ ├── stm32f4xx_hal_conf.h
│ │ │ │ ├── sys_init.h
│ │ │ │ ├── system_stm32f4xx.h
│ │ │ │ └── usart.h
│ │ │ ├── Lib/
│ │ │ │ ├── hwpatch.lib
│ │ │ │ ├── hwpatch_iar.a
│ │ │ │ └── libhwpatch.a
│ │ │ ├── MDK-ARM/
│ │ │ │ ├── Huawei_LiteOS.uvoptx
│ │ │ │ ├── Huawei_LiteOS.uvprojx
│ │ │ │ ├── STM32F429IGTx-LiteOS.sct
│ │ │ │ └── los_startup_keil.s
│ │ │ ├── OS_CONFIG/
│ │ │ │ ├── los_builddef.h
│ │ │ │ ├── los_printf.h
│ │ │ │ └── target_config.h
│ │ │ └── Src/
│ │ │ ├── at_hal.c
│ │ │ ├── board.c
│ │ │ ├── bootloader_recover.c
│ │ │ ├── dwt.c
│ │ │ ├── eth.c
│ │ │ ├── fatfs_hal.c
│ │ │ ├── flash_adaptor.c
│ │ │ ├── main.c
│ │ │ ├── ota_port.c
│ │ │ ├── spiffs_hal.c
│ │ │ ├── sys_init.c
│ │ │ ├── system_stm32f4xx.c
│ │ │ ├── usart.c
│ │ │ └── user_task.c
│ │ ├── Mini_Project/
│ │ │ ├── cortex-m0plus_without_driver/
│ │ │ │ ├── GCC/
│ │ │ │ │ ├── LPC51U68_flash.ld
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── config.mk
│ │ │ │ │ ├── prune.mk
│ │ │ │ │ └── startup_LPC51U68.s
│ │ │ │ ├── Inc/
│ │ │ │ │ ├── __hal_simulate.h
│ │ │ │ │ ├── main.h
│ │ │ │ │ ├── ota_port.h
│ │ │ │ │ └── sys_init.h
│ │ │ │ ├── OS_CONFIG/
│ │ │ │ │ ├── los_builddef.h
│ │ │ │ │ ├── los_printf.h
│ │ │ │ │ └── target_config.h
│ │ │ │ └── Src/
│ │ │ │ ├── __hal_simulate.c
│ │ │ │ ├── main.c
│ │ │ │ └── user_task.c
│ │ │ ├── cortex-m3_without_driver/
│ │ │ │ ├── GCC/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── config.mk
│ │ │ │ │ ├── cortex-m3.ld
│ │ │ │ │ ├── los_startup_gcc.s
│ │ │ │ │ └── prune.mk
│ │ │ │ ├── Inc/
│ │ │ │ │ ├── __hal_simulate.h
│ │ │ │ │ ├── main.h
│ │ │ │ │ ├── ota_port.h
│ │ │ │ │ └── sys_init.h
│ │ │ │ ├── OS_CONFIG/
│ │ │ │ │ ├── los_builddef.h
│ │ │ │ │ ├── los_printf.h
│ │ │ │ │ └── target_config.h
│ │ │ │ └── Src/
│ │ │ │ ├── __hal_simulate.c
│ │ │ │ ├── main.c
│ │ │ │ └── user_task.c
│ │ │ └── cortex-m4_without_driver/
│ │ │ ├── GCC/
│ │ │ │ ├── Makefile
│ │ │ │ ├── config.mk
│ │ │ │ ├── cortex-m4.ld
│ │ │ │ ├── los_startup_gcc.s
│ │ │ │ └── prune.mk
│ │ │ ├── Inc/
│ │ │ │ ├── __hal_simulate.h
│ │ │ │ ├── main.h
│ │ │ │ ├── ota_port.h
│ │ │ │ └── sys_init.h
│ │ │ ├── Lib/
│ │ │ │ ├── hwpatch.lib
│ │ │ │ └── libhwpatch.a
│ │ │ ├── OS_CONFIG/
│ │ │ │ ├── los_builddef.h
│ │ │ │ ├── los_printf.h
│ │ │ │ └── target_config.h
│ │ │ ├── Src/
│ │ │ │ ├── __hal_simulate.c
│ │ │ │ ├── main.c
│ │ │ │ └── user_task.c
│ │ │ └── cortex-m4-without-driver.doc
│ │ ├── NXP_LPC51U68/
│ │ │ ├── Driver/
│ │ │ │ ├── LPC51U68/
│ │ │ │ │ ├── LPC51U68.h
│ │ │ │ │ ├── LPC51U68.xml
│ │ │ │ │ ├── LPC51U68_features.h
│ │ │ │ │ ├── cmsis_drivers/
│ │ │ │ │ │ ├── fsl_i2c_cmsis.c
│ │ │ │ │ │ ├── fsl_i2c_cmsis.h
│ │ │ │ │ │ ├── fsl_spi_cmsis.c
│ │ │ │ │ │ ├── fsl_spi_cmsis.h
│ │ │ │ │ │ ├── fsl_usart_cmsis.c
│ │ │ │ │ │ └── fsl_usart_cmsis.h
│ │ │ │ │ ├── drivers/
│ │ │ │ │ │ ├── fsl_adc.c
│ │ │ │ │ │ ├── fsl_adc.h
│ │ │ │ │ │ ├── fsl_clock.c
│ │ │ │ │ │ ├── fsl_clock.h
│ │ │ │ │ │ ├── fsl_common.c
│ │ │ │ │ │ ├── fsl_common.h
│ │ │ │ │ │ ├── fsl_crc.c
│ │ │ │ │ │ ├── fsl_crc.h
│ │ │ │ │ │ ├── fsl_ctimer.c
│ │ │ │ │ │ ├── fsl_ctimer.h
│ │ │ │ │ │ ├── fsl_dma.c
│ │ │ │ │ │ ├── fsl_dma.h
│ │ │ │ │ │ ├── fsl_flashiap.c
│ │ │ │ │ │ ├── fsl_flashiap.h
│ │ │ │ │ │ ├── fsl_flexcomm.c
│ │ │ │ │ │ ├── fsl_flexcomm.h
│ │ │ │ │ │ ├── fsl_fmeas.c
│ │ │ │ │ │ ├── fsl_fmeas.h
│ │ │ │ │ │ ├── fsl_gint.c
│ │ │ │ │ │ ├── fsl_gint.h
│ │ │ │ │ │ ├── fsl_gpio.c
│ │ │ │ │ │ ├── fsl_gpio.h
│ │ │ │ │ │ ├── fsl_i2c.c
│ │ │ │ │ │ ├── fsl_i2c.h
│ │ │ │ │ │ ├── fsl_i2c_dma.c
│ │ │ │ │ │ ├── fsl_i2c_dma.h
│ │ │ │ │ │ ├── fsl_i2s.c
│ │ │ │ │ │ ├── fsl_i2s.h
│ │ │ │ │ │ ├── fsl_i2s_dma.c
│ │ │ │ │ │ ├── fsl_i2s_dma.h
│ │ │ │ │ │ ├── fsl_inputmux.c
│ │ │ │ │ │ ├── fsl_inputmux.h
│ │ │ │ │ │ ├── fsl_inputmux_connections.h
│ │ │ │ │ │ ├── fsl_iocon.h
│ │ │ │ │ │ ├── fsl_mrt.c
│ │ │ │ │ │ ├── fsl_mrt.h
│ │ │ │ │ │ ├── fsl_pint.c
│ │ │ │ │ │ ├── fsl_pint.h
│ │ │ │ │ │ ├── fsl_power.c
│ │ │ │ │ │ ├── fsl_power.h
│ │ │ │ │ │ ├── fsl_reset.c
│ │ │ │ │ │ ├── fsl_reset.h
│ │ │ │ │ │ ├── fsl_rtc.c
│ │ │ │ │ │ ├── fsl_rtc.h
│ │ │ │ │ │ ├── fsl_sctimer.c
│ │ │ │ │ │ ├── fsl_sctimer.h
│ │ │ │ │ │ ├── fsl_spi.c
│ │ │ │ │ │ ├── fsl_spi.h
│ │ │ │ │ │ ├── fsl_spi_dma.c
│ │ │ │ │ │ ├── fsl_spi_dma.h
│ │ │ │ │ │ ├── fsl_usart.c
│ │ │ │ │ │ ├── fsl_usart.h
│ │ │ │ │ │ ├── fsl_usart_dma.c
│ │ │ │ │ │ ├── fsl_usart_dma.h
│ │ │ │ │ │ ├── fsl_utick.c
│ │ │ │ │ │ ├── fsl_utick.h
│ │ │ │ │ │ ├── fsl_wwdt.c
│ │ │ │ │ │ └── fsl_wwdt.h
│ │ │ │ │ ├── fsl_device_registers.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── LPC51U68_flash.ld
│ │ │ │ │ │ ├── LPC51U68_ram.ld
│ │ │ │ │ │ ├── libpower.a
│ │ │ │ │ │ └── startup_LPC51U68.S
│ │ │ │ │ ├── project_template/
│ │ │ │ │ │ ├── board.c
│ │ │ │ │ │ ├── board.h
│ │ │ │ │ │ ├── clock_config.c
│ │ │ │ │ │ ├── clock_config.h
│ │ │ │ │ │ ├── peripherals.c
│ │ │ │ │ │ ├── peripherals.h
│ │ │ │ │ │ ├── pin_mux.c
│ │ │ │ │ │ └── pin_mux.h
│ │ │ │ │ ├── system_LPC51U68.c
│ │ │ │ │ ├── system_LPC51U68.h
│ │ │ │ │ ├── template/
│ │ │ │ │ │ └── RTE_Device.h
│ │ │ │ │ └── utilities/
│ │ │ │ │ ├── fsl_assert.c
│ │ │ │ │ ├── fsl_debug_console.c
│ │ │ │ │ ├── fsl_debug_console.h
│ │ │ │ │ ├── fsl_debug_console_conf.h
│ │ │ │ │ ├── fsl_notifier.c
│ │ │ │ │ ├── fsl_notifier.h
│ │ │ │ │ ├── fsl_shell.c
│ │ │ │ │ ├── fsl_shell.h
│ │ │ │ │ ├── io/
│ │ │ │ │ │ ├── fsl_io.c
│ │ │ │ │ │ └── fsl_io.h
│ │ │ │ │ ├── log/
│ │ │ │ │ │ ├── fsl_log.c
│ │ │ │ │ │ └── fsl_log.h
│ │ │ │ │ └── str/
│ │ │ │ │ ├── fsl_str.c
│ │ │ │ │ └── fsl_str.h
│ │ │ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ │ │ └── board/
│ │ │ │ ├── board.c
│ │ │ │ ├── board.h
│ │ │ │ ├── clock_config.c
│ │ │ │ ├── clock_config.h
│ │ │ │ ├── example.xml
│ │ │ │ ├── hello_world.bak
│ │ │ │ ├── hello_world.xml
│ │ │ │ ├── libpower.a
│ │ │ │ ├── pin_mux.c
│ │ │ │ ├── pin_mux.h
│ │ │ │ └── readme.txt
│ │ │ ├── GCC/
│ │ │ │ ├── LPC51U68_flash.ld
│ │ │ │ ├── Makefile
│ │ │ │ ├── config.mk
│ │ │ │ ├── prune.mk
│ │ │ │ └── startup_LPC51U68.s
│ │ │ ├── Inc/
│ │ │ │ ├── main.h
│ │ │ │ └── ota_port.h
│ │ │ ├── OS_CONFIG/
│ │ │ │ ├── los_builddef.h
│ │ │ │ ├── los_printf.h
│ │ │ │ └── target_config.h
│ │ │ └── Src/
│ │ │ ├── ENC28J60.c
│ │ │ ├── ENC28J60.h
│ │ │ ├── ethernetif.c
│ │ │ ├── main.c
│ │ │ └── uart.c
│ │ └── STM32F103VET6_NB_GCC/
│ │ ├── .mxproject
│ │ ├── Drivers/
│ │ │ ├── CMSIS/
│ │ │ │ └── Device/
│ │ │ │ └── ST/
│ │ │ │ └── STM32F1xx/
│ │ │ │ └── Include/
│ │ │ │ ├── stm32f103x6.h
│ │ │ │ ├── stm32f103xb.h
│ │ │ │ ├── stm32f103xe.h
│ │ │ │ ├── stm32f103xg.h
│ │ │ │ ├── stm32f1xx.h
│ │ │ │ └── system_stm32f1xx.h
│ │ │ └── STM32F1xx_HAL_Driver/
│ │ │ ├── Inc/
│ │ │ │ ├── Legacy/
│ │ │ │ │ └── stm32_hal_legacy.h
│ │ │ │ ├── stm32_assert_template.h
│ │ │ │ ├── stm32f1xx_hal.h
│ │ │ │ ├── stm32f1xx_hal_adc.h
│ │ │ │ ├── stm32f1xx_hal_adc_ex.h
│ │ │ │ ├── stm32f1xx_hal_can.h
│ │ │ │ ├── stm32f1xx_hal_can_ex.h
│ │ │ │ ├── stm32f1xx_hal_cec.h
│ │ │ │ ├── stm32f1xx_hal_conf_template.h
│ │ │ │ ├── stm32f1xx_hal_cortex.h
│ │ │ │ ├── stm32f1xx_hal_crc.h
│ │ │ │ ├── stm32f1xx_hal_dac.h
│ │ │ │ ├── stm32f1xx_hal_dac_ex.h
│ │ │ │ ├── stm32f1xx_hal_def.h
│ │ │ │ ├── stm32f1xx_hal_dma.h
│ │ │ │ ├── stm32f1xx_hal_dma_ex.h
│ │ │ │ ├── stm32f1xx_hal_eth.h
│ │ │ │ ├── stm32f1xx_hal_flash.h
│ │ │ │ ├── stm32f1xx_hal_flash_ex.h
│ │ │ │ ├── stm32f1xx_hal_gpio.h
│ │ │ │ ├── stm32f1xx_hal_gpio_ex.h
│ │ │ │ ├── stm32f1xx_hal_hcd.h
│ │ │ │ ├── stm32f1xx_hal_i2c.h
│ │ │ │ ├── stm32f1xx_hal_i2s.h
│ │ │ │ ├── stm32f1xx_hal_irda.h
│ │ │ │ ├── stm32f1xx_hal_iwdg.h
│ │ │ │ ├── stm32f1xx_hal_mmc.h
│ │ │ │ ├── stm32f1xx_hal_nand.h
│ │ │ │ ├── stm32f1xx_hal_nor.h
│ │ │ │ ├── stm32f1xx_hal_pccard.h
│ │ │ │ ├── stm32f1xx_hal_pcd.h
│ │ │ │ ├── stm32f1xx_hal_pcd_ex.h
│ │ │ │ ├── stm32f1xx_hal_pwr.h
│ │ │ │ ├── stm32f1xx_hal_rcc.h
│ │ │ │ ├── stm32f1xx_hal_rcc_ex.h
│ │ │ │ ├── stm32f1xx_hal_rtc.h
│ │ │ │ ├── stm32f1xx_hal_rtc_ex.h
│ │ │ │ ├── stm32f1xx_hal_sd.h
│ │ │ │ ├── stm32f1xx_hal_smartcard.h
│ │ │ │ ├── stm32f1xx_hal_spi.h
│ │ │ │ ├── stm32f1xx_hal_sram.h
│ │ │ │ ├── stm32f1xx_hal_tim.h
│ │ │ │ ├── stm32f1xx_hal_tim_ex.h
│ │ │ │ ├── stm32f1xx_hal_uart.h
│ │ │ │ ├── stm32f1xx_hal_usart.h
│ │ │ │ ├── stm32f1xx_hal_wwdg.h
│ │ │ │ ├── stm32f1xx_ll_adc.h
│ │ │ │ ├── stm32f1xx_ll_bus.h
│ │ │ │ ├── stm32f1xx_ll_cortex.h
│ │ │ │ ├── stm32f1xx_ll_crc.h
│ │ │ │ ├── stm32f1xx_ll_dac.h
│ │ │ │ ├── stm32f1xx_ll_dma.h
│ │ │ │ ├── stm32f1xx_ll_exti.h
│ │ │ │ ├── stm32f1xx_ll_fsmc.h
│ │ │ │ ├── stm32f1xx_ll_gpio.h
│ │ │ │ ├── stm32f1xx_ll_i2c.h
│ │ │ │ ├── stm32f1xx_ll_iwdg.h
│ │ │ │ ├── stm32f1xx_ll_pwr.h
│ │ │ │ ├── stm32f1xx_ll_rcc.h
│ │ │ │ ├── stm32f1xx_ll_rtc.h
│ │ │ │ ├── stm32f1xx_ll_sdmmc.h
│ │ │ │ ├── stm32f1xx_ll_spi.h
│ │ │ │ ├── stm32f1xx_ll_system.h
│ │ │ │ ├── stm32f1xx_ll_tim.h
│ │ │ │ ├── stm32f1xx_ll_usart.h
│ │ │ │ ├── stm32f1xx_ll_usb.h
│ │ │ │ ├── stm32f1xx_ll_utils.h
│ │ │ │ └── stm32f1xx_ll_wwdg.h
│ │ │ └── Src/
│ │ │ ├── stm32f1xx_hal.c
│ │ │ ├── stm32f1xx_hal_adc.c
│ │ │ ├── stm32f1xx_hal_adc_ex.c
│ │ │ ├── stm32f1xx_hal_can.c
│ │ │ ├── stm32f1xx_hal_cec.c
│ │ │ ├── stm32f1xx_hal_cortex.c
│ │ │ ├── stm32f1xx_hal_crc.c
│ │ │ ├── stm32f1xx_hal_dac.c
│ │ │ ├── stm32f1xx_hal_dac_ex.c
│ │ │ ├── stm32f1xx_hal_dma.c
│ │ │ ├── stm32f1xx_hal_eth.c
│ │ │ ├── stm32f1xx_hal_flash.c
│ │ │ ├── stm32f1xx_hal_flash_ex.c
│ │ │ ├── stm32f1xx_hal_gpio.c
│ │ │ ├── stm32f1xx_hal_gpio_ex.c
│ │ │ ├── stm32f1xx_hal_hcd.c
│ │ │ ├── stm32f1xx_hal_i2c.c
│ │ │ ├── stm32f1xx_hal_i2s.c
│ │ │ ├── stm32f1xx_hal_irda.c
│ │ │ ├── stm32f1xx_hal_iwdg.c
│ │ │ ├── stm32f1xx_hal_mmc.c
│ │ │ ├── stm32f1xx_hal_msp_template.c
│ │ │ ├── stm32f1xx_hal_nand.c
│ │ │ ├── stm32f1xx_hal_nor.c
│ │ │ ├── stm32f1xx_hal_pccard.c
│ │ │ ├── stm32f1xx_hal_pcd.c
│ │ │ ├── stm32f1xx_hal_pcd_ex.c
│ │ │ ├── stm32f1xx_hal_pwr.c
│ │ │ ├── stm32f1xx_hal_rcc.c
│ │ │ ├── stm32f1xx_hal_rcc_ex.c
│ │ │ ├── stm32f1xx_hal_rtc.c
│ │ │ ├── stm32f1xx_hal_rtc_ex.c
│ │ │ ├── stm32f1xx_hal_sd.c
│ │ │ ├── stm32f1xx_hal_smartcard.c
│ │ │ ├── stm32f1xx_hal_spi.c
│ │ │ ├── stm32f1xx_hal_spi_ex.c
│ │ │ ├── stm32f1xx_hal_sram.c
│ │ │ ├── stm32f1xx_hal_tim.c
│ │ │ ├── stm32f1xx_hal_tim_ex.c
│ │ │ ├── stm32f1xx_hal_timebase_rtc_alarm_template.c
│ │ │ ├── stm32f1xx_hal_timebase_tim_template.c
│ │ │ ├── stm32f1xx_hal_uart.c
│ │ │ ├── stm32f1xx_hal_usart.c
│ │ │ ├── stm32f1xx_hal_wwdg.c
│ │ │ ├── stm32f1xx_ll_adc.c
│ │ │ ├── stm32f1xx_ll_crc.c
│ │ │ ├── stm32f1xx_ll_dac.c
│ │ │ ├── stm32f1xx_ll_dma.c
│ │ │ ├── stm32f1xx_ll_exti.c
│ │ │ ├── stm32f1xx_ll_fsmc.c
│ │ │ ├── stm32f1xx_ll_gpio.c
│ │ │ ├── stm32f1xx_ll_i2c.c
│ │ │ ├── stm32f1xx_ll_pwr.c
│ │ │ ├── stm32f1xx_ll_rcc.c
│ │ │ ├── stm32f1xx_ll_rtc.c
│ │ │ ├── stm32f1xx_ll_sdmmc.c
│ │ │ ├── stm32f1xx_ll_spi.c
│ │ │ ├── stm32f1xx_ll_tim.c
│ │ │ ├── stm32f1xx_ll_usart.c
│ │ │ ├── stm32f1xx_ll_usb.c
│ │ │ └── stm32f1xx_ll_utils.c
│ │ ├── GCC/
│ │ │ ├── Makefile
│ │ │ ├── STM32F103VETx_FLASH.ld
│ │ │ └── startup_stm32f103xe.s
│ │ ├── Inc/
│ │ │ ├── at_hal.h
│ │ │ ├── main.h
│ │ │ ├── stm32f1xx_hal_conf.h
│ │ │ ├── stm32f1xx_it.h
│ │ │ └── usart.h
│ │ ├── OS_CONFIG/
│ │ │ ├── los_builddef.h
│ │ │ ├── los_printf.h
│ │ │ └── target_config.h
│ │ ├── STM32F103VET6_NB_GCC.ioc
│ │ └── Src/
│ │ ├── at_hal.c
│ │ ├── main.c
│ │ ├── stm32f1xx_hal_msp.c
│ │ ├── stm32f1xx_it.c
│ │ ├── system_stm32f1xx.c
│ │ └── usart.c
│ └── tests/
│ ├── cmockery/
│ │ ├── AUTHORS
│ │ ├── COPYING
│ │ ├── ChangeLog
│ │ ├── INSTALL
│ │ ├── LICENSE.txt
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── NEWS
│ │ ├── README
│ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ ├── aclocal.m4
│ │ ├── autogen.sh
│ │ ├── compile
│ │ ├── config.guess
│ │ ├── config.sub
│ │ ├── configure
│ │ ├── configure.ac
│ │ ├── depcomp
│ │ ├── doc/
│ │ │ ├── html2wiki.sh
│ │ │ └── index.html
│ │ ├── install-sh
│ │ ├── ltmain.sh
│ │ ├── m4/
│ │ │ ├── ac_have_attribute.m4
│ │ │ ├── ac_rwlock.m4
│ │ │ ├── acx_pthread.m4
│ │ │ ├── compiler_characteristics.m4
│ │ │ ├── google_namespace.m4
│ │ │ ├── namespaces.m4
│ │ │ ├── stl_hash.m4
│ │ │ └── stl_namespace.m4
│ │ ├── missing
│ │ ├── mkinstalldirs
│ │ ├── packages/
│ │ │ ├── deb/
│ │ │ │ ├── README
│ │ │ │ ├── changelog
│ │ │ │ ├── compat
│ │ │ │ ├── control
│ │ │ │ ├── copyright
│ │ │ │ ├── docs
│ │ │ │ ├── libcmockery-dev.dirs
│ │ │ │ ├── libcmockery-dev.install
│ │ │ │ ├── libcmockery0.dirs
│ │ │ │ ├── libcmockery0.install
│ │ │ │ └── rules
│ │ │ ├── deb.sh
│ │ │ ├── rpm/
│ │ │ │ └── rpm.spec
│ │ │ └── rpm.sh
│ │ ├── readme.md
│ │ ├── src/
│ │ │ ├── cmockery.c
│ │ │ ├── config.h
│ │ │ ├── example/
│ │ │ │ ├── allocate_module.c
│ │ │ │ ├── allocate_module_test.c
│ │ │ │ ├── assert_macro.c
│ │ │ │ ├── assert_macro_test.c
│ │ │ │ ├── assert_module.c
│ │ │ │ ├── assert_module_test.c
│ │ │ │ ├── calculator.c
│ │ │ │ ├── calculator_test.c
│ │ │ │ ├── customer_database.c
│ │ │ │ ├── customer_database_test.c
│ │ │ │ ├── database.h
│ │ │ │ ├── key_value.c
│ │ │ │ ├── key_value_test.c
│ │ │ │ ├── product_database.c
│ │ │ │ ├── product_database_test.c
│ │ │ │ └── run_tests.c
│ │ │ └── google/
│ │ │ └── cmockery.h
│ │ └── windows/
│ │ └── makefile
│ ├── test_agenttiny/
│ │ ├── It_Los_Agenttiny.c
│ │ ├── It_Los_Atiny_Bind.c
│ │ ├── It_Los_Atiny_Data_Report.c
│ │ ├── It_Los_Atiny_Init.c
│ │ └── test_agenttiny.h
│ ├── test_main.c
│ ├── test_sota/
│ │ ├── sota_test.c
│ │ └── sota_test.h
│ └── test_suit/
│ ├── agenttiny_test.c
│ ├── fs_test.c
│ └── regresstest.h
├── Huawei_LiteOS_Kernel/
│ ├── Huawei_LiteOS/
│ │ ├── kernel/
│ │ │ ├── base/
│ │ │ │ ├── core/
│ │ │ │ │ ├── los_priqueue.c
│ │ │ │ │ ├── los_priqueue.inc
│ │ │ │ │ ├── los_swtmr.c
│ │ │ │ │ ├── los_swtmr.inc
│ │ │ │ │ ├── los_sys.c
│ │ │ │ │ ├── los_sys.inc
│ │ │ │ │ ├── los_task.c
│ │ │ │ │ ├── los_task.inc
│ │ │ │ │ ├── los_tick.c
│ │ │ │ │ ├── los_tick.inc
│ │ │ │ │ ├── los_timeslice.c
│ │ │ │ │ └── los_timeslice.inc
│ │ │ │ ├── include/
│ │ │ │ │ ├── los_base.ph
│ │ │ │ │ ├── los_event.ph
│ │ │ │ │ ├── los_list.ph
│ │ │ │ │ ├── los_membox.ph
│ │ │ │ │ ├── los_memory.ph
│ │ │ │ │ ├── los_memstat.ph
│ │ │ │ │ ├── los_multipledlinkhead.ph
│ │ │ │ │ ├── los_mux.ph
│ │ │ │ │ ├── los_printf.ph
│ │ │ │ │ ├── los_priqueue.ph
│ │ │ │ │ ├── los_queue.ph
│ │ │ │ │ ├── los_sem.ph
│ │ │ │ │ ├── los_swtmr.ph
│ │ │ │ │ ├── los_sys.ph
│ │ │ │ │ ├── los_task.ph
│ │ │ │ │ ├── los_tick.ph
│ │ │ │ │ ├── los_timeslice.ph
│ │ │ │ │ └── los_typedef.ph
│ │ │ │ ├── ipc/
│ │ │ │ │ ├── los_event.c
│ │ │ │ │ ├── los_event.inc
│ │ │ │ │ ├── los_mux.c
│ │ │ │ │ ├── los_mux.inc
│ │ │ │ │ ├── los_queue.c
│ │ │ │ │ ├── los_queue.inc
│ │ │ │ │ ├── los_sem.c
│ │ │ │ │ └── los_sem.inc
│ │ │ │ ├── mem/
│ │ │ │ │ ├── los_membox.c
│ │ │ │ │ ├── los_membox.inc
│ │ │ │ │ ├── los_memory.c
│ │ │ │ │ ├── los_memory.inc
│ │ │ │ │ ├── los_memstat.c
│ │ │ │ │ ├── los_memstat.inc
│ │ │ │ │ ├── los_multipledlinkhead.c
│ │ │ │ │ └── los_multipledlinkhead.inc
│ │ │ │ └── misc/
│ │ │ │ └── los_misc.c
│ │ │ └── include/
│ │ │ ├── los_base.h
│ │ │ ├── los_errno.h
│ │ │ ├── los_event.h
│ │ │ ├── los_list.h
│ │ │ ├── los_membox.h
│ │ │ ├── los_memory.h
│ │ │ ├── los_multipledlinkhead.h
│ │ │ ├── los_mux.h
│ │ │ ├── los_printf.h
│ │ │ ├── los_priqueue.h
│ │ │ ├── los_queue.h
│ │ │ ├── los_sem.h
│ │ │ ├── los_swtmr.h
│ │ │ ├── los_sys.h
│ │ │ ├── los_tables.h
│ │ │ ├── los_task.h
│ │ │ ├── los_tick.h
│ │ │ └── los_typedef.h
│ │ └── platform/
│ │ ├── bsp/
│ │ │ └── sample/
│ │ │ └── config/
│ │ │ ├── los_builddef.h
│ │ │ ├── los_config.c
│ │ │ └── los_config.h
│ │ └── cpu/
│ │ └── arm/
│ │ └── cortex-m4/
│ │ ├── los_dispatch.s
│ │ ├── los_hw.c
│ │ ├── los_hw.h
│ │ ├── los_hw_tick.c
│ │ ├── los_hwi.c
│ │ ├── los_hwi.h
│ │ └── los_vendor.s
│ ├── LICENSE
│ ├── Projects/
│ │ └── EWARM/
│ │ └── cortex-m4/
│ │ └── stm32f411/
│ │ ├── Application/
│ │ │ └── README.md
│ │ ├── Huawei_LiteOS.dep
│ │ ├── Huawei_LiteOS.ewd
│ │ ├── Huawei_LiteOS.ewp
│ │ ├── Huawei_LiteOS.ewt
│ │ ├── Huawei_LiteOS.eww
│ │ ├── Huawei_LiteOS_cortexMF411.icf
│ │ └── settings/
│ │ ├── Huawei_LiteOS.Debug.cspy.bat
│ │ ├── Huawei_LiteOS.crun
│ │ ├── Huawei_LiteOS.dbgdt
│ │ ├── Huawei_LiteOS.dni
│ │ ├── Huawei_LiteOS.wsdt
│ │ ├── Huawei_LiteOS.wspos
│ │ └── Huawei_LiteOS_Debug.jlink
│ ├── README.md
│ └── doc/
│ └── HuaweiLiteOSKernelDevGuide.chm
├── README.md
├── _config.yml
├── community/
│ └── questions.md
├── doc/
│ ├── README-tr.md
│ └── README-zh.md
└── products/
└── honor_smart_screen.md
================================================
FILE CONTENTS
================================================
================================================
FILE: CNAME
================================================
awesome-harmonyos.com
================================================
FILE: Huawei_LiteOS/.github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
---
* **Describe the bug**
*A clear and concise description of what the bug is.*
* **To Reproduce**
*Steps to reproduce the behavior*:
- step 1
- step 2
- step 3
- step 4
* **Expected behavior**
*A clear and concise description of what you expected to happen.*
* **Current behavior**
*A clear and concise description of what happens currently.*
* **Please tell us about your environment:**
- LiteOS Version:
- Chip Architecture:
- Board:
* **Other information** (*e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc*)
================================================
FILE: Huawei_LiteOS/.github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
---
* **Is your feature request related to a problem? Please describe.**
*A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]*
* **Describe the solution you'd like**
*A clear and concise description of what you want to happen.*
* **Describe alternatives you've considered**
*A clear and concise description of any alternative solutions or features you've considered.*
* **Other information**
*Add any other context or screenshots about the feature request here.*
================================================
FILE: Huawei_LiteOS/.travis.yml
================================================
language: c
os: linux
dist: trusty
compiler: arm-none-eabi-gcc
before_install:
- sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa -y
- sudo apt-get update -q
- sudo apt-get install gcc-arm-embedded -y
script:
- cd targets/Cloud_STM32F429IGTx_FIRE/GCC
- make
================================================
FILE: Huawei_LiteOS/LICENSE
================================================
* Copyright (c) <2013-2018>, <Huawei Technologies Co., Ltd>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: Huawei_LiteOS/README.md
================================================
[](https://travis-ci.org/LiteOS/LiteOS)
## Huawei LiteOS简介
Huawei LiteOS是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。本项目属于华为物联网操作系统[Huawei LiteOS](http://developer.huawei.com/ict/cn/site-iot/product/liteos)源码,现有基础内核支持任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,更好地支持低功耗场景,支持tickless机制,支持定时器对齐。
同时提供端云协同能力,集成了LwM2M、CoAP、mbedtls、LwIP全套IoT互联协议栈,且在LwM2M的基础上,提供了AgentTiny模块,用户只需关注自身的应用,而不必关注LwM2M实现细节,直接使用AgentTiny封装的接口即可简单快速实现与云平台安全可靠的连接。
Huawei LiteOS自开源社区发布以来,围绕NB-IoT物联网市场从技术、生态、解决方案、商用支持等多维度使能合作伙伴,构建开源的物联网生态,目前已经聚合了30+ MCU和解决方案合作伙伴,共同推出一批开源开发套件和行业解决方案,帮助众多行业客户快速的推出物联网终端和服务,客户涵盖抄表、停车、路灯、环保、共享单车、物流等众多行业,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期。
## LiteOS 代码导读
- [LiteOS内核源代码目录说明](./doc/LiteOS_Code_Info.md)
该文档描述的是LiteOS内核源代码的详细信息。通过此文档读者可以了解LiteOS的源代码结构,以及LiteOS的main()函数的功能。
## LiteOS 开发指南
[LiteOS开发指南](./doc/Huawei_LiteOS_Developer_Guide_zh.md)
[LiteOS移植指南](https://liteos.github.io/porting/)
该文档详细讲解了LiteOS各模块开发及其实现原理。用户可以根据该文档学习各模块的使用。
## LiteOS 接入云平台开发指南
* [LiteOS接入华为云平台](https://github.com/SuYai/OceanConnectHelp)
* [LiteOS SDK端云互通组件开发指南](./doc/Huawei_LiteOS_SDK_Developer_Guide.md)
LiteOS SDK是Huawei LiteOS软件开发工具包(Software Development Kit),通过LiteOS SDK端云互通组件,简单快速地实现与华为 OceanConnect IoT平台安全可靠连接,可以大大减少开发周期,快速构建IoT产品。
LiteOS SDK是Huawei LiteOS软件开发工具包(Software Development Kit),通过LiteOS SDK端云互通组件,简单快速地实现与华为 OceanConnect IoT平台安全可靠连接,可以大大减少开发周期,快速构建IoT产品。
* [LiteOS SDK端云互通组件Coap开发指南](./doc/Huawei_LiteOS_SDK_Coap_LwM2M_Developer_Guide_zh.md)
* [LiteOS SDK端云互通组件MQTT开发指南](./doc/Huawei_LiteOS_SDK_MQTT_Developer_Guide.md)
* [LiteOS接入3rd云平台](https://github.com/LiteOS/LiteOS_Connect_to_3rd_Cloud)
## LiteOS 支持的硬件
* LiteOS开源项目目前支持ARM Cortex-M0,Cortex-M3,Cortex-M4,Cortex-M7等芯片架构
* [LiteOS支持的开发板列表](./doc/LiteOS_Supported_board_list.md)
Huawei LiteOS 联合业界主流MCU厂家,通过开发者活动,目前已经适配了30+ 通用 MCU开发套件,5套NB-IoT集成开发套件
## 开源协议
* 遵循BSD-3开源许可协议
* [Huawei LiteOS 知识产权政策](https://support.huaweicloud.com/productdesc-LiteOS/zh-cn_topic_0145347224.html)
## LiteOS Git入门必读
- [LiteOS Commit Message规则](./doc/LiteOS_Commit_Message.md)
该文档描述如何提交commit到LiteOS仓库,这是LiteOS开发必须遵守的commit规则,否则提交的commit会被驳回。请点链接了解详细信息。
- [Huawei LiteOS代码贡献流程](./doc/LiteOS_Contribute_Guide_GitGUI.md)
该文档描述开发者如何创建自己的仓库,开发然后贡献代码到LiteOS仓库。请点链接了解详细信息。
## 加入我们
* 欢迎提交issue对关心的问题发起讨论,欢迎提交PR参与特性建设
* 如您有合作意向,希望加入Huawei LiteOS生态合作伙伴,请发邮件至liteos@huawei.com,或访问[LiteOS官网](http://www.huawei.com/liteos),进一步了解详细信息
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m0/gcc/los_dispatch_gcc.S
================================================
/** ----------------------------------------------------------------------------
* Copyright (c) <2016-2018>, <Huawei Technologies Co., Ltd>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*---------------------------------------------------------------------------*/
/** ----------------------------------------------------------------------------
* Notice of Export Control Law
* ===============================================
* Huawei LiteOS may be subject to applicable export control laws and regulations, which might
* include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
* Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
* applicable export control laws and regulations.
*---------------------------------------------------------------------------*/
/****************************************************************************************
* EXPORT FUNCTIONS
****************************************************************************************/
.global LOS_IntLock
.global LOS_IntUnLock
.global LOS_IntRestore
.global LOS_StartToRun
.global osTaskSchedule
.global PendSV_Handler
/****************************************************************************************
* EXTERN PARAMETERS
****************************************************************************************/
.extern g_stLosTask
.extern g_pfnTskSwitchHook
.extern g_bTaskScheduled
/****************************************************************************************
* EQU
****************************************************************************************/
.equ OS_NVIC_INT_CTRL, 0xE000ED04 /* Interrupt Control and State Register. */
.equ OS_NVIC_PENDSVSET, 0x10000000 /* Value to trigger PendSV exception. */
.equ OS_NVIC_SYSPRI2, 0xE000ED20 /* System Handler Priority Register 2. */
.equ OS_NVIC_PENDSV_SYSTICK_PRI, 0xC0C00000 /* SysTick + PendSV priority level (lowest). */
.equ OS_TASK_STATUS_RUNNING, 0x0010 /* Task Status Flag (RUNNING). */
/****************************************************************************************
* CODE GENERATION DIRECTIVES
****************************************************************************************/
.section .text
.thumb
.syntax unified
.arch armv6-m
/****************************************************************************************
* Function:
* VOID LOS_StartToRun(VOID);
* Description:
* Start the first task, which is the highest priority task in the priority queue.
* Other tasks are started by task scheduling.
****************************************************************************************/
.type LOS_StartToRun, %function
LOS_StartToRun:
CPSID I
/**
* Set PendSV and SysTick prority to the lowest.
* read ---> modify ---> write-back.
*/
LDR R0, =OS_NVIC_SYSPRI2
LDR R1, =OS_NVIC_PENDSV_SYSTICK_PRI
LDR R2, [R0]
ORRS R1, R1, R2
STR R1, [R0]
/**
* Set g_bTaskScheduled = 1.
*/
LDR R0, =g_bTaskScheduled
MOVS R1, #1
STR R1, [R0]
/**
* Now PSP is an invalid value, R13 uses MSP as the stack pointer.
* After setting the control register, R13 will switch to PSP.
* To ensure that R13 is valid, set PSP = MSP.
*/
MRS R0, MSP
MSR PSP, R0
/**
* Set the CONTROL register, after schedule start, privilege level and stack = PSP.
*/
MOVS R0, #2
MSR CONTROL, R0
/**
* Set g_stLosTask.pstRunTask = g_stLosTask.pstNewTask.
*/
LDR R0, =g_stLosTask
LDR R1, [R0, #4]
STR R1, [R0]
/**
* Set g_stLosTask.pstRunTask->usTaskStatus |= OS_TASK_STATUS_RUNNING.
*/
LDR R1, [R0]
LDRH R2, [R1, #4]
MOVS R3, #OS_TASK_STATUS_RUNNING
ORRS R2, R2, R3
STRH R2, [R1, #4]
/**
* Restore the default stack frame(R0-R3,R12,LR,PC,xPSR) of g_stLosTask.pstRunTask to R0-R7.
* Return by setting the CONTROL register.
*
* The initial stack of the current running task is as follows:
*
* POP: Restore the context of the current running task ===>|
* High addr--->|
* Bottom of the stack--->|
* ----------+-----------------------+--------------------------------------+
* | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
* ----------+-----------------------+--------------------------------------+
* |<---Top of the stack, restored from g_stLosTask.pstRunTask->pStackPointer
* |<--- skip --->|<--- copy to R0-R7 --->|
* R3 to PSP--->|
* Stack pointer after LOS_StartToRun--->|
*/
LDR R3, [R1]
ADDS R3, R3, #36 /* skip R4-R11, PRIMASK. */
LDMFD R3!, {R0-R2} /* restore R0-R2. */
ADDS R3, R3, #4 /* skip R3. */
LDMFD R3!, {R4-R7} /* restore R12,LR,PC,xPSR. */
/**
* Set the stack pointer of g_stLosTask.pstRunTask to PSP.
*/
MSR PSP, R3
SUBS R3, R3, #20
LDR R3, [R3] /* restore R3. */
/**
* Enable interrupt. (The default PRIMASK value is 0, so enable directly)
*/
MOV LR, R5
CPSIE I
/**
* Jump directly to the default PC of g_stLosTask.pstRunTask, the field information
* of the main function will be destroyed and will never be returned.
*/
BX R6
/****************************************************************************************
* Function:
* UINTPTR LOS_IntLock(VOID);
* Description:
* Disable all interrupts except Reset,NMI and HardFault.
* The value of currnet interruption state will be returned to the caller to save.
*
* Function:
* VOID LOS_IntRestore(UINTPTR uvIntSave);
* Description:
* Restore the locked interruption of LOS_IntLock.
* The caller must pass in the value of interruption state previously saved.
****************************************************************************************/
.type LOS_IntLock, %function
LOS_IntLock:
MRS R0, PRIMASK
CPSID I
BX LR
.type LOS_IntUnLock, %function
LOS_IntUnLock:
MRS R0, PRIMASK
CPSIE I
BX LR
.type LOS_IntRestore, %function
LOS_IntRestore:
MSR PRIMASK, R0
BX LR
/****************************************************************************************
* Function:
* VOID osTaskSchedule(VOID);
* Description:
* Start the task swtich process by software trigger PendSV interrupt.
****************************************************************************************/
.type osTaskSchedule, %function
osTaskSchedule:
LDR R0, =OS_NVIC_INT_CTRL
LDR R1, =OS_NVIC_PENDSVSET
STR R1, [R0]
BX LR
/****************************************************************************************
* Function:
* VOID PendSV_Handler(VOID);
* Description:
* PendSV interrupt handler, switch the context of the task.
* First: Save the context of the current running task(g_stLosTask.pstRunTask)
* to its own stack.
* Second: Restore the context of the next running task(g_stLosTask.pstNewTask)
* from its own stack.
****************************************************************************************/
.type PendSV_Handler, %function
PendSV_Handler:
/**
* R12: Save the interruption state of the current running task.
* Disable all interrupts except Reset,NMI and HardFault
*/
MRS R12, PRIMASK
CPSID I
/**
* Call task switch hook.
*/
LDR R2, =g_pfnTskSwitchHook
LDR R2, [R2]
CMP R2, #0
BEQ TaskSwitch
MOV R1, LR
PUSH {R0, R1}
BLX R2
POP {R0, R1}
MOV LR, R1
TaskSwitch:
/**
* R0 = now stack pointer of the current running task.
*/
MRS R0, PSP
/**
* Save the stack frame(R4-R11) of the current running task.
* R12 save the PRIMASK value of the current running task.
* NOTE: Before entering the exception handler function, these registers
* (xPSR,PC,LR,R12,R3-R0) have been automatically
* saved by the CPU in the stack of the current running task.
*
* The stack of the current running task is as follows:
*
* |<=== PUSH: Save the context of the current running task
* | High addr--->|
* ----------+-----------------------+--------------------------------------+-----
* | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
* ----------+-----------------------+--------------------------------------+-----
* Stack pointer before entering exception--->|
* |<--- cpu auto saved --->|
* |<---PSP to R0
* |<---Top of the stack, save to g_stLosTask.pstRunTask->pStackPointer
*/
SUBS R0, #36
STMIA R0!, {R4-R7} /* save R4-R7. */
MOV R3, R8 /* copy R8-r12 to R3-r7. */
MOV R4, R9
MOV R5, R10
MOV R6, R11
MOV R7, R12
STMIA R0!, {R3-R7} /* save R8-R12. */
SUBS R0, #36
/**
* R5,R3.
*/
LDR R5, =g_stLosTask
MOVS R3, #OS_TASK_STATUS_RUNNING
/**
* Save the stack pointer of the current running task to TCB.
* (g_stLosTask.pstRunTask->pStackPointer = R0)
*/
LDR R6, [R5]
STR R0, [R6]
/**
* Clear the RUNNING state of the current running task.
* (g_stLosTask.pstRunTask->usTaskStatus &= ~OS_TASK_STATUS_RUNNING)
*/
LDRH R7, [R6, #4]
BICS R7, R7, R3
STRH R7, [R6, #4]
/**
* Switch the current running task to the next running task.
* (g_stLosTask.pstRunTask = g_stLosTask.pstNewTask)
*/
LDR R0, [R5, #4]
STR R0, [R5]
/**
* Set the RUNNING state of the next running task.
* (g_stLosTask.pstNewTask->usTaskStatus |= OS_TASK_STATUS_RUNNING)
*/
LDRH R7, [R0, #4]
ORRS R7, R7, R3
STRH R7, [R0, #4]
/**
* Restore the stack pointer of the next running task from TCB.
* (R1 = g_stLosTask.pstNewTask->pStackPointer)
*/
LDR R1, [R0]
/**
* Restore the stack frame(R4-R11) of the next running task.
* R12 restore the PRIMASK value of the next running task.
* NOTE: After exiting the exception handler function, these registers
* (xPSR,R0-R3,R12,LR,PC) will be automatically
* restored by the CPU from the stack of the next running task.
*
* 1. The stack of the next running task is as follows:
*
* POP: Restore the context of the next running task ===>|
* High addr--->|
* ----------+-----------------------+--------------------------------------+-----
* | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
* ----------+-----------------------+--------------------------------------+-----
* |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
* R1 to PSP--->|
* |<--- cpu auto restoring --->|
* Stack pointer after exiting exception--->|
*
* 2. If the next running task is run for the first time, the stack is as follows:
*
* POP: Restore the context of the next running task ===>|
* High addr--->|
* Bottom of the stack--->|
* ----------+-----------------------+--------------------------------------+
* | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
* ----------+-----------------------+--------------------------------------+
* |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
* R1 to PSP--->|
* |<--- cpu auto restoring --->|
* Stack pointer after exiting exception--->|
*/
ADDS R1, #16
LDMFD R1!, {R3-R7} /* restore R8-R12 to R3-R7. */
MOV R8, R3 /* copy R3-R7 to R8-R12. */
MOV R9, R4
MOV R10, R5
MOV R11, R6
MOV R12, R7
/**
* Set the stack pointer of the next running task to PSP.
*/
MSR PSP, R1
SUBS R1, #36
LDMFD R1!, {R4-R7} /* restore R4-R7. */
/**
* Restore the interruption state of the next running task.
*/
MSR PRIMASK, R12
BX LR
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m0/gcc/los_hw_exc_gcc.S
================================================
/*----------------------------------------------------------------------------
Copyright (c) <2013-2015>, <Huawei Technologies Co., Ltd>
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used
to endorse or promote products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE, DATA, OR PROFITS
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
----------------------------------------------------------------------------
Notice of Export Control Law
===============================================
Huawei LiteOS may be subject to applicable export control laws and regulations, which might
include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
applicable export control laws and regulations.
---------------------------------------------------------------------------*/
/****************************************************************************************
CODE GENERATION DIRECTIVES
****************************************************************************************/
.section .text
.thumb
.syntax unified
.arch armv6-m
/****************************************************************************************
EXPORT FUNCTIONS
****************************************************************************************/
.global NMI_Handler
.global HardFault_Handler
.global MemManage_Handler
.global BusFault_Handler
.global UsageFault_Handler
/****************************************************************************************
EXTERN PARAMETERS
****************************************************************************************/
.extern osExcHandleEntry
.extern g_uwExcTbl
.extern g_bTaskScheduled
.extern it_is_memManangeFault
.extern it_is_busFault
.extern it_is_usageFault
/****************************************************************************************
EQU
****************************************************************************************/
.equ OS_EXC_CAUSE_NMI, 18
.equ OS_EXC_CAUSE_HARDFAULT, 19
.equ OS_EXC_CAUSE_MEMFAULT, 20
.equ OS_EXC_CAUSE_BUSFAULT, 21
.equ OS_EXC_CAUSE_USAGEFAULT, 22
.equ OS_EXC_CAUSE_SVC, 23
.equ HF_DEBUGEVT, 24
.equ HF_VECTBL, 25
.equ FLAG_ADDR_VALID, 0x10000 /*bit 16*/
.equ FLAG_HWI_ACTIVE, 0x20000 /*bit 17*/
.equ FLAG_NO_FLOAT, 0x10000000 /*bit 28*/
.equ OS_NVIC_CFSR, 0xE000ED28 /*include BusFault/MemFault/UsageFault State Regeister*/
.equ OS_NVIC_HFSR, 0xE000ED2C /*HardFault State Regeister*/
.equ OS_NVIC_BFAR, 0xE000ED38
.equ OS_NVIC_MMFAR, 0xE000ED34
.equ OS_NVIC_ACT_BASE, 0xE000E300
.equ OS_NVIC_SHCSRS, 0xE000ED24
.equ OS_NVIC_SHCSR_MASK, 0xC00 /*SYSTICKACT and PENDSVACT*/
.equ ADDR_SETPEND, 0XE000E200 /*the addr of setpend register*/
.equ ADDR_CLRPEND, 0XE000E280 /*the addr of clrpend register*/
.equ ADDR_SETENA, 0XE000E100
.equ EXC_RETURN_NEST, 0XFFFFFFF1 /*return to some irq_handler*/
/****************************************************************************************
Function:
VOID NMI_Handler(VOID)
Description:
NMI Handler.
****************************************************************************************/
.type NMI_Handler, %function
NMI_Handler:
/**
* Before executing instruction 'B osExcDispatch', the value of R0 is as follows.
* < R0 >:
* +------------------------------------------------------+------------------------+
* | 31-8 | 7-0 |
* +------------------------------------------------------+------------------------+
* | --- | OS_EXC_CAUSE_NMI |
* +------------------------------------------------------+------------------------+
* < R1 >: invalid
*/
MOVS R0, #OS_EXC_CAUSE_NMI
MOVS R1, #0
B osExcDispatch
/****************************************************************************************
Function:
VOID HardFault_Handler(VOID)
Description:
HardFault Handler.
****************************************************************************************/
.type HardFault_Handler, %function
HardFault_Handler:
/**
* save fault type to R0
*/
MOVS R0, #OS_EXC_CAUSE_HARDFAULT
B osExcDispatch
/**
* When executing osExcDispatch, R2 will be used.
*/
osExcDispatch:
LDR R2, =ADDR_SETPEND
LDR R2, [R2]
LDR R3,=0X40
LSLS R3,R3,#0X18
SUBS R3,R3,#1 /*R3 =0011 1111 1111 1111 1111 1111 1111 1111 filter the highest active 2 bits error*/
ANDS R2,R2,R3
LDR R3,=ADDR_SETENA
LDR R3,[R3]
ANDS R2,R2,R3 /*if an interrupt is enabled and active ,it is a nomal exception ,otherwise,it should be ignored*/
MOV R1,LR
LDR R3, =EXC_RETURN_NEST
CMP R1,R3
BEQ __in_interrupt /*jump when they are equal,if LR equals it,they are in some interrupt*/
B __second_judge
__in_interrupt:
CMP R2,#0
BEQ __set_R2_33
B _NoFloatInMsp
__set_R2_33:
MOVS R2,#0x21 /*if in interrupt,but the setpendAddr is 0,sth wrong happened, set id to 33*/
B _NoFloatInMsp
__second_judge:
CMP R2,#0
BEQ _whether_in_initialization /*jump when no external interrupt occurred*/
/**
* Interrupts and initialization phase always use MSP.
*/
_ExcInMSP:
/**
* Before executing instruction 'B _handleEntry', MSP is as follows.
* MSP:
* High addr--->|
* +--------------------------------------------------------------------------------+---------
* | R4-R11,PRIMASK,SAVED_SP | R0-R3,R12,LR,PC,xPSR |
* +--------------------------------------------------------------------------------+---------
* R13--->| Initial R13--->|<--- #32 --->|<---SAVED_SP
* | (CPU auto saved) |
*
*/
_NoFloatInMsp:
CMP R2,#0 /*check r2 ,find the phase interrupts occurred*/
BEQ __11
MOVS R1,#0x2f /*in interrupt phase ,r1=47*/
LSLS R0,R0,#8
ORRS R0,R0,R1 /*make r1 available*/
B __12
__11:
MOVS R1,#0 /*in initialization phase r1=0*/
LSLS R0,R0,#8
ORRS R0,R0,R1 /* make r1 available */
__12:
ADD R3, R13, #32 /*#32: skip [R0-R3,R12,LR,PC,xPSR]*/
PUSH {R3} /*push [SAVED_SP]: MSP+32 = Stack pointer in MSP before entering the exception*/
MRS R12, PRIMASK
MOV R3,R12
PUSH {R3}
MOV R3,R11
PUSH {R3}
MOV R3,R10
PUSH {R3}
MOV R3,R9
PUSH {R3}
MOV R3,R8
PUSH {R3}
PUSH {R7}
PUSH {R6}
PUSH {R5}
PUSH {R4} /*push R4-R11,PRIMASK to MSP in certain order*/
B _handleEntry
/**
* Check whether during the initialization phase.
* If g_bTaskScheduled == 0, it is in the initialization phase.
*/
_whether_in_initialization:
LDR R1, =g_bTaskScheduled
LDR R1, [R1]
MOVS R3,#1
TST R1,R3
BEQ _ExcInMSP /*initialization phase use MSP*/
/**
* Before executing _handleEntry, MSP is as follows.
* MSP:
* High addr--->|
* +--------------------------------------------------------------------------------+---------
* | R4-R11,PRIMASK,TASK_SP | R0-R3,R12,LR,PC,xPSR |
* +--------------------------------------------------------------------------------+---------
* R13--->| |<--- #32 --->|<---Initial R13
* | (copied from PSP) |
* |<---R2(no use)
*
* NOTE: stack frame: R0-R3,R12,LR,PC,xPSR.
*/
_NoFloatInPsp:
MOVS R1,#1 /*in task ,r1 = 1 */
LSLS R0,R0,#8
ORRS R0,R0,R1 /*make r1 available*/
MOV R1, R13
SUB R13, #32 /*#32: MSP reserved, used to store stack frame in PSP*/
MRS R3, PSP
ADDS R3, R3, #32 /*PSP+32 = Stack pointer of the task before entering the exception*/
PUSH {R3} /*push task SP to MSP*/
MRS R3,PRIMASK
PUSH {R3}
MOV R3,R11
PUSH {R3}
MOV R3,R10
PUSH {R3}
MOV R3,R9
PUSH {R3}
MOV R3,R8
PUSH {R3}
PUSH {R7}
PUSH {R6}
PUSH {R5}
PUSH {R4}
MRS R3,PSP
/* Copy stack frame from the stack of the current running task to MSP */
LDMIA R3!, {R4-R7}
SUBS R1,#0X20
STMIA R1!, {R4-R7}
LDMIA R3!, {R4-R7}
STMIA R1!, {R4-R7}
/**
* _handleEntry: Call osExcHandleEntry
* param1: R0 --- type num and phase
* param2: R1 --- the sp being used(in Cortex-M0,it is only for debug )
* param3: R2 --- external interrupt ID
* param4: R3 --- Point to the top of the stack(R4 or S16) that the exception stack frame in MSP.
*/
_handleEntry:
MOV R3, R13
MOV R1,R13
CPSID I
LDR R4,=osExcHandleEntry
MOV PC,R4
NOP
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m0/iar/los_dispatch_iar.S
================================================
;----------------------------------------------------------------------------
; Copyright (c) <2016-2018>, <Huawei Technologies Co., Ltd>
; All rights reserved.
; Redistribution and use in source and binary forms, with or without modification,
; are permitted provided that the following conditions are met:
; 1. Redistributions of source code must retain the above copyright notice, this list of
; conditions and the following disclaimer.
; 2. Redistributions in binary form must reproduce the above copyright notice, this list
; of conditions and the following disclaimer in the documentation and/or other materials
; provided with the distribution.
; 3. Neither the name of the copyright holder nor the names of its contributors may be used
; to endorse or promote products derived from this software without specific prior written
; permission.
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;---------------------------------------------------------------------------*/
;----------------------------------------------------------------------------
; Notice of Export Control Law
; ===============================================
; Huawei LiteOS may be subject to applicable export control laws and regulations, which might
; include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
; Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
; applicable export control laws and regulations.
;---------------------------------------------------------------------------*/
;****************************************************************************************
; EXPORT FUNCTIONS
;****************************************************************************************
EXPORT LOS_IntLock
EXPORT LOS_IntUnLock
EXPORT LOS_IntRestore
EXPORT LOS_StartToRun
EXPORT osTaskSchedule
EXPORT PendSV_Handler
;****************************************************************************************
; EXTERN PARAMETERS
;****************************************************************************************
IMPORT g_stLosTask
IMPORT g_pfnTskSwitchHook
IMPORT g_bTaskScheduled
;****************************************************************************************
; EQU
;****************************************************************************************
OS_NVIC_INT_CTRL EQU 0xE000ED04 ; Interrupt Control and State Register.
OS_NVIC_PENDSVSET EQU 0x10000000 ; Value to trigger PendSV exception.
OS_NVIC_SYSPRI2 EQU 0xE000ED20 ; System Handler Priority Register 2.
OS_NVIC_PENDSV_SYSTICK_PRI EQU 0xC0C00000 ; SysTick + PendSV priority level (lowest).
OS_TASK_STATUS_RUNNING EQU 0x0010 ; Task Status Flag (RUNNING).
;****************************************************************************************
; CODE GENERATION DIRECTIVES
;****************************************************************************************
SECTION .text:CODE(2)
THUMB
REQUIRE8
PRESERVE8
;****************************************************************************************
; Function:
; VOID LOS_StartToRun(VOID);
; Description:
; Start the first task, which is the highest priority task in the priority queue.
; Other tasks are started by task scheduling.
;****************************************************************************************
LOS_StartToRun
CPSID I
;/**
; * Set PendSV and SysTick prority to the lowest.
; * read ---> modify ---> write-back.
; */
LDR R0, =OS_NVIC_SYSPRI2
LDR R1, =OS_NVIC_PENDSV_SYSTICK_PRI
LDR R2, [R0]
ORRS R1, R1, R2
STR R1, [R0]
;/**
; * Set g_bTaskScheduled = 1.
; */
LDR R0, =g_bTaskScheduled
MOVS R1, #1
STR R1, [R0]
;/**
; * Now PSP is an invalid value, R13 uses MSP as the stack pointer.
; * After setting the control register, R13 will switch to PSP.
; * To ensure that R13 is valid, set PSP = MSP.
; */
MRS R0, MSP
MSR PSP, R0
;/**
; * Set the CONTROL register, after schedule start, privilege level and stack = PSP.
; */
MOVS R0, #2
MSR CONTROL, R0
;/**
; * Set g_stLosTask.pstRunTask = g_stLosTask.pstNewTask.
; */
LDR R0, =g_stLosTask
LDR R1, [R0, #4]
STR R1, [R0]
;/**
; * Set g_stLosTask.pstRunTask->usTaskStatus |= OS_TASK_STATUS_RUNNING.
; */
LDR R1, [R0]
LDRH R2, [R1, #4]
MOVS R3, #OS_TASK_STATUS_RUNNING
ORRS R2, R2, R3
STRH R2, [R1, #4]
;/**
; * Restore the default stack frame(R0-R3,R12,LR,PC,xPSR) of g_stLosTask.pstRunTask to R0-R7.
; * Return by setting the CONTROL register.
; *
; * The initial stack of the current running task is as follows:
; *
; * POP: Restore the context of the current running task ===>|
; * High addr--->|
; * Bottom of the stack--->|
; * ----------+-----------------------+--------------------------------------+
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+
; * |<---Top of the stack, restored from g_stLosTask.pstRunTask->pStackPointer
; * |<--- skip --->|<--- copy to R0-R7 --->|
; * R3 to PSP--->|
; * Stack pointer after LOS_StartToRun--->|
; */
LDR R3, [R1]
ADDS R3, R3, #36 ; skip R4-R11, PRIMASK.
LDMFD R3!, {R0-R2} ; restore R0-R2.
ADDS R3, R3, #4 ; skip R3.
LDMFD R3!, {R4-R7} ; restore R12,LR,PC,xPSR.
;/**
; * Set the stack pointer of g_stLosTask.pstRunTask to PSP.
; */
MSR PSP, R3
SUBS R3, R3, #20
LDR R3, [R3] ; restore R3.
;/**
; * Enable interrupt. (The default PRIMASK value is 0, so enable directly)
; */
MOV LR, R5
CPSIE I
;/**
; * Jump directly to the default PC of g_stLosTask.pstRunTask, the field information
; * of the main function will be destroyed and will never be returned.
; */
BX R6
;****************************************************************************************
; Function:
; UINTPTR LOS_IntLock(VOID);
; Description:
; Disable all interrupts except Reset,NMI and HardFault.
; The value of currnet interruption state will be returned to the caller to save.
;
; Function:
; VOID LOS_IntRestore(UINTPTR uvIntSave);
; Description:
; Restore the locked interruption of LOS_IntLock.
; The caller must pass in the value of interruption state previously saved.
;****************************************************************************************
LOS_IntLock
MRS R0, PRIMASK
CPSID I
BX LR
LOS_IntUnLock
MRS R0, PRIMASK
CPSIE I
BX LR
LOS_IntRestore
MSR PRIMASK, R0
BX LR
;****************************************************************************************
; Function:
; VOID osTaskSchedule(VOID);
; Description:
; Start the task swtich process by software trigger PendSV interrupt.
;****************************************************************************************
osTaskSchedule
LDR R0, =OS_NVIC_INT_CTRL
LDR R1, =OS_NVIC_PENDSVSET
STR R1, [R0]
BX LR
;****************************************************************************************
; Function:
; VOID PendSV_Handler(VOID);
; Description:
; PendSV interrupt handler, switch the context of the task.
; First: Save the context of the current running task(g_stLosTask.pstRunTask)
; to its own stack.
; Second: Restore the context of the next running task(g_stLosTask.pstNewTask)
; from its own stack.
;****************************************************************************************
PendSV_Handler
;/**
; * R12: Save the interruption state of the current running task.
; * Disable all interrupts except Reset,NMI and HardFault
; */
MRS R12, PRIMASK
CPSID I
;/**
; * Call task switch hook.
; */
LDR R2, =g_pfnTskSwitchHook
LDR R2, [R2]
CMP R2, #0
BEQ TaskSwitch
MOV R1, LR
PUSH {R0, R1}
BLX R2
POP {R0, R1}
MOV LR, R1
TaskSwitch
;/**
; * R0 = now stack pointer of the current running task.
; */
MRS R0, PSP
;/**
; * Save the stack frame(R4-R11) of the current running task.
; * R12 save the PRIMASK value of the current running task.
; * NOTE: Before entering the exception handler function, these registers
; * (xPSR,PC,LR,R12,R3-R0) have been automatically
; * saved by the CPU in the stack of the current running task.
; *
; * The stack of the current running task is as follows:
; *
; * |<=== PUSH: Save the context of the current running task
; * | High addr--->|
; * ----------+-----------------------+--------------------------------------+-----
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+-----
; * Stack pointer before entering exception--->|
; * |<--- cpu auto saved --->|
; * |<---PSP to R0
; * |<---Top of the stack, save to g_stLosTask.pstRunTask->pStackPointer
; */
SUBS R0, #36
STMIA R0!, {R4-R7} ; save R4-R7.
MOV R3, R8 ; copy R8-r12 to R3-r7.
MOV R4, R9
MOV R5, R10
MOV R6, R11
MOV R7, R12
STMIA R0!, {R3-R7} ; save R8-R12.
SUBS R0, #36
;/**
; * R5,R3.
; */
LDR R5, =g_stLosTask
MOVS R3, #OS_TASK_STATUS_RUNNING
;/**
; * Save the stack pointer of the current running task to TCB.
; * (g_stLosTask.pstRunTask->pStackPointer = R0)
; */
LDR R6, [R5]
STR R0, [R6]
;/**
; * Clear the RUNNING state of the current running task.
; * (g_stLosTask.pstRunTask->usTaskStatus &= ~OS_TASK_STATUS_RUNNING)
; */
LDRH R7, [R6, #4]
BICS R7, R7, R3
STRH R7, [R6, #4]
;/**
; * Switch the current running task to the next running task.
; * (g_stLosTask.pstRunTask = g_stLosTask.pstNewTask)
; */
LDR R0, [R5, #4]
STR R0, [R5]
;/**
; * Set the RUNNING state of the next running task.
; * (g_stLosTask.pstNewTask->usTaskStatus |= OS_TASK_STATUS_RUNNING)
; */
LDRH R7, [R0, #4]
ORRS R7, R7, R3
STRH R7, [R0, #4]
;/**
; * Restore the stack pointer of the next running task from TCB.
; * (R1 = g_stLosTask.pstNewTask->pStackPointer)
; */
LDR R1, [R0]
;/**
; * Restore the stack frame(R4-R11) of the next running task.
; * R12 restore the PRIMASK value of the next running task.
; * NOTE: After exiting the exception handler function, these registers
; * (xPSR,R0-R3,R12,LR,PC) will be automatically
; * restored by the CPU from the stack of the next running task.
; *
; * 1. The stack of the next running task is as follows:
; *
; * POP: Restore the context of the next running task ===>|
; * High addr--->|
; * ----------+-----------------------+--------------------------------------+-----
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+-----
; * |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
; * R1 to PSP--->|
; * |<--- cpu auto restoring --->|
; * Stack pointer after exiting exception--->|
; *
; * 2. If the next running task is run for the first time, the stack is as follows:
; *
; * POP: Restore the context of the next running task ===>|
; * High addr--->|
; * Bottom of the stack--->|
; * ----------+-----------------------+--------------------------------------+
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+
; * |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
; * R1 to PSP--->|
; * |<--- cpu auto restoring --->|
; * Stack pointer after exiting exception--->|
; */
ADDS R1, #16
LDMFD R1!, {R3-R7} ; restore R8-R12 to R3-R7.
MOV R8, R3 ; copy R3-R7 to R8-R12.
MOV R9, R4
MOV R10, R5
MOV R11, R6
MOV R12, R7
;/**
; * Set the stack pointer of the next running task to PSP.
; */
MSR PSP, R1
SUBS R1, #36
LDMFD R1!, {R4-R7} ; restore R4-R7.
;/**
; * Restore the interruption state of the next running task.
; */
MSR PRIMASK, R12
BX LR
END
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m0/keil/los_dispatch_keil.S
================================================
;----------------------------------------------------------------------------
; Copyright (c) <2016-2018>, <Huawei Technologies Co., Ltd>
; All rights reserved.
; Redistribution and use in source and binary forms, with or without modification,
; are permitted provided that the following conditions are met:
; 1. Redistributions of source code must retain the above copyright notice, this list of
; conditions and the following disclaimer.
; 2. Redistributions in binary form must reproduce the above copyright notice, this list
; of conditions and the following disclaimer in the documentation and/or other materials
; provided with the distribution.
; 3. Neither the name of the copyright holder nor the names of its contributors may be used
; to endorse or promote products derived from this software without specific prior written
; permission.
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;---------------------------------------------------------------------------*/
;----------------------------------------------------------------------------
; Notice of Export Control Law
; ===============================================
; Huawei LiteOS may be subject to applicable export control laws and regulations, which might
; include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
; Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
; applicable export control laws and regulations.
;---------------------------------------------------------------------------*/
;****************************************************************************************
; EXPORT FUNCTIONS
;****************************************************************************************
EXPORT LOS_IntLock
EXPORT LOS_IntUnLock
EXPORT LOS_IntRestore
EXPORT LOS_StartToRun
EXPORT osTaskSchedule
EXPORT PendSV_Handler
;****************************************************************************************
; EXTERN PARAMETERS
;****************************************************************************************
IMPORT g_stLosTask
IMPORT g_pfnTskSwitchHook
IMPORT g_bTaskScheduled
;****************************************************************************************
; EQU
;****************************************************************************************
OS_NVIC_INT_CTRL EQU 0xE000ED04 ; Interrupt Control and State Register.
OS_NVIC_PENDSVSET EQU 0x10000000 ; Value to trigger PendSV exception.
OS_NVIC_SYSPRI2 EQU 0xE000ED20 ; System Handler Priority Register 2.
OS_NVIC_PENDSV_SYSTICK_PRI EQU 0xC0C00000 ; SysTick + PendSV priority level (lowest).
OS_TASK_STATUS_RUNNING EQU 0x0010 ; Task Status Flag (RUNNING).
;****************************************************************************************
; CODE GENERATION DIRECTIVES
;****************************************************************************************
AREA |.text|, CODE, READONLY
THUMB
REQUIRE8
PRESERVE8
;****************************************************************************************
; Function:
; VOID LOS_StartToRun(VOID);
; Description:
; Start the first task, which is the highest priority task in the priority queue.
; Other tasks are started by task scheduling.
;****************************************************************************************
LOS_StartToRun
CPSID I
;/**
; * Set PendSV and SysTick prority to the lowest.
; * read ---> modify ---> write-back.
; */
LDR R0, =OS_NVIC_SYSPRI2
LDR R1, =OS_NVIC_PENDSV_SYSTICK_PRI
LDR R2, [R0]
ORRS R1, R1, R2
STR R1, [R0]
;/**
; * Set g_bTaskScheduled = 1.
; */
LDR R0, =g_bTaskScheduled
MOVS R1, #1
STR R1, [R0]
;/**
; * Now PSP is an invalid value, R13 uses MSP as the stack pointer.
; * After setting the control register, R13 will switch to PSP.
; * To ensure that R13 is valid, set PSP = MSP.
; */
MRS R0, MSP
MSR PSP, R0
;/**
; * Set the CONTROL register, after schedule start, privilege level and stack = PSP.
; */
MOVS R0, #2
MSR CONTROL, R0
;/**
; * Set g_stLosTask.pstRunTask = g_stLosTask.pstNewTask.
; */
LDR R0, =g_stLosTask
LDR R1, [R0, #4]
STR R1, [R0]
;/**
; * Set g_stLosTask.pstRunTask->usTaskStatus |= OS_TASK_STATUS_RUNNING.
; */
LDR R1, [R0]
LDRH R2, [R1, #4]
MOVS R3, #OS_TASK_STATUS_RUNNING
ORRS R2, R2, R3
STRH R2, [R1, #4]
;/**
; * Restore the default stack frame(R0-R3,R12,LR,PC,xPSR) of g_stLosTask.pstRunTask to R0-R7.
; * Return by setting the CONTROL register.
; *
; * The initial stack of the current running task is as follows:
; *
; * POP: Restore the context of the current running task ===>|
; * High addr--->|
; * Bottom of the stack--->|
; * ----------+-----------------------+--------------------------------------+
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+
; * |<---Top of the stack, restored from g_stLosTask.pstRunTask->pStackPointer
; * |<--- skip --->|<--- copy to R0-R7 --->|
; * R3 to PSP--->|
; * Stack pointer after LOS_StartToRun--->|
; */
LDR R3, [R1]
ADDS R3, R3, #36 ; skip R4-R11, PRIMASK.
LDMFD R3!, {R0-R2} ; restore R0-R2.
ADDS R3, R3, #4 ; skip R3.
LDMFD R3!, {R4-R7} ; restore R12,LR,PC,xPSR.
;/**
; * Set the stack pointer of g_stLosTask.pstRunTask to PSP.
; */
MSR PSP, R3
SUBS R3, R3, #20
LDR R3, [R3] ; restore R3.
;/**
; * Enable interrupt. (The default PRIMASK value is 0, so enable directly)
; */
MOV LR, R5
CPSIE I
;/**
; * Jump directly to the default PC of g_stLosTask.pstRunTask, the field information
; * of the main function will be destroyed and will never be returned.
; */
BX R6
;****************************************************************************************
; Function:
; UINTPTR LOS_IntLock(VOID);
; Description:
; Disable all interrupts except Reset,NMI and HardFault.
; The value of currnet interruption state will be returned to the caller to save.
;
; Function:
; VOID LOS_IntRestore(UINTPTR uvIntSave);
; Description:
; Restore the locked interruption of LOS_IntLock.
; The caller must pass in the value of interruption state previously saved.
;****************************************************************************************
LOS_IntLock
MRS R0, PRIMASK
CPSID I
BX LR
LOS_IntUnLock
MRS R0, PRIMASK
CPSIE I
BX LR
LOS_IntRestore
MSR PRIMASK, R0
BX LR
;****************************************************************************************
; Function:
; VOID osTaskSchedule(VOID);
; Description:
; Start the task swtich process by software trigger PendSV interrupt.
;****************************************************************************************
osTaskSchedule
LDR R0, =OS_NVIC_INT_CTRL
LDR R1, =OS_NVIC_PENDSVSET
STR R1, [R0]
BX LR
;****************************************************************************************
; Function:
; VOID PendSV_Handler(VOID);
; Description:
; PendSV interrupt handler, switch the context of the task.
; First: Save the context of the current running task(g_stLosTask.pstRunTask)
; to its own stack.
; Second: Restore the context of the next running task(g_stLosTask.pstNewTask)
; from its own stack.
;****************************************************************************************
PendSV_Handler
;/**
; * R12: Save the interruption state of the current running task.
; * Disable all interrupts except Reset,NMI and HardFault
; */
MRS R12, PRIMASK
CPSID I
;/**
; * Call task switch hook.
; */
LDR R2, =g_pfnTskSwitchHook
LDR R2, [R2]
CMP R2, #0
BEQ TaskSwitch
MOV R1, LR
PUSH {R0, R1}
BLX R2
POP {R0, R1}
MOV LR, R1
TaskSwitch
;/**
; * R0 = now stack pointer of the current running task.
; */
MRS R0, PSP
;/**
; * Save the stack frame(R4-R11) of the current running task.
; * R12 save the PRIMASK value of the current running task.
; * NOTE: Before entering the exception handler function, these registers
; * (xPSR,PC,LR,R12,R3-R0) have been automatically
; * saved by the CPU in the stack of the current running task.
; *
; * The stack of the current running task is as follows:
; *
; * |<=== PUSH: Save the context of the current running task
; * | High addr--->|
; * ----------+-----------------------+--------------------------------------+-----
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+-----
; * Stack pointer before entering exception--->|
; * |<--- cpu auto saved --->|
; * |<---PSP to R0
; * |<---Top of the stack, save to g_stLosTask.pstRunTask->pStackPointer
; */
SUBS R0, #36
STMIA R0!, {R4-R7} ; save R4-R7.
MOV R3, R8 ; copy R8-r12 to R3-r7.
MOV R4, R9
MOV R5, R10
MOV R6, R11
MOV R7, R12
STMIA R0!, {R3-R7} ; save R8-R12.
SUBS R0, #36
;/**
; * R5,R3.
; */
LDR R5, =g_stLosTask
MOVS R3, #OS_TASK_STATUS_RUNNING
;/**
; * Save the stack pointer of the current running task to TCB.
; * (g_stLosTask.pstRunTask->pStackPointer = R0)
; */
LDR R6, [R5]
STR R0, [R6]
;/**
; * Clear the RUNNING state of the current running task.
; * (g_stLosTask.pstRunTask->usTaskStatus &= ~OS_TASK_STATUS_RUNNING)
; */
LDRH R7, [R6, #4]
BICS R7, R7, R3
STRH R7, [R6, #4]
;/**
; * Switch the current running task to the next running task.
; * (g_stLosTask.pstRunTask = g_stLosTask.pstNewTask)
; */
LDR R0, [R5, #4]
STR R0, [R5]
;/**
; * Set the RUNNING state of the next running task.
; * (g_stLosTask.pstNewTask->usTaskStatus |= OS_TASK_STATUS_RUNNING)
; */
LDRH R7, [R0, #4]
ORRS R7, R7, R3
STRH R7, [R0, #4]
;/**
; * Restore the stack pointer of the next running task from TCB.
; * (R1 = g_stLosTask.pstNewTask->pStackPointer)
; */
LDR R1, [R0]
;/**
; * Restore the stack frame(R4-R11) of the next running task.
; * R12 restore the PRIMASK value of the next running task.
; * NOTE: After exiting the exception handler function, these registers
; * (xPSR,R0-R3,R12,LR,PC) will be automatically
; * restored by the CPU from the stack of the next running task.
; *
; * 1. The stack of the next running task is as follows:
; *
; * POP: Restore the context of the next running task ===>|
; * High addr--->|
; * ----------+-----------------------+--------------------------------------+-----
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+-----
; * |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
; * R1 to PSP--->|
; * |<--- cpu auto restoring --->|
; * Stack pointer after exiting exception--->|
; *
; * 2. If the next running task is run for the first time, the stack is as follows:
; *
; * POP: Restore the context of the next running task ===>|
; * High addr--->|
; * Bottom of the stack--->|
; * ----------+-----------------------+--------------------------------------+
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+
; * |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
; * R1 to PSP--->|
; * |<--- cpu auto restoring --->|
; * Stack pointer after exiting exception--->|
; */
ADDS R1, #16
LDMFD R1!, {R3-R7} ; restore R8-R12 to R3-R7.
MOV R8, R3 ; copy R3-R7 to R8-R12.
MOV R9, R4
MOV R10, R5
MOV R11, R6
MOV R12, R7
;/**
; * Set the stack pointer of the next running task to PSP.
; */
MSR PSP, R1
SUBS R1, #36
LDMFD R1!, {R4-R7} ; restore R4-R7.
;/**
; * Restore the interruption state of the next running task.
; */
MSR PRIMASK, R12
BX LR
ALIGN
END
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m0/keil/los_hw_exc_keil.S
================================================
;----------------------------------------------------------------------------
; Copyright (c) <2013-2015>, <Huawei Technologies Co., Ltd>
; All rights reserved.
; Redistribution and use in source and binary forms, with or without modification,
; are permitted provided that the following conditions are met:
; 1. Redistributions of source code must retain the above copyright notice, this list of
; conditions and the following disclaimer.
; 2. Redistributions in binary form must reproduce the above copyright notice, this list
; of conditions and the following disclaimer in the documentation and/or other materials
; provided with the distribution.
; 3. Neither the name of the copyright holder nor the names of its contributors may be used
; to endorse or promote products derived from this software without specific prior written
; permission.
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;---------------------------------------------------------------------------*/
;----------------------------------------------------------------------------
; Notice of Export Control Law
; ===============================================
; Huawei LiteOS may be subject to applicable export control laws and regulations, which might
; include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
; Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
; applicable export control laws and regulations.
;---------------------------------------------------------------------------*/
;****************************************************************************************
; CODE GENERATION DIRECTIVES
;****************************************************************************************
PRESERVE8
AREA |.text|, CODE, READONLY
THUMB
;****************************************************************************************
; EXPORT FUNCTIONS
;****************************************************************************************
EXPORT NMI_Handler
EXPORT HardFault_Handler
EXPORT MemManage_Handler
EXPORT BusFault_Handler
EXPORT UsageFault_Handler
; EXPORT SVC_Handler
;****************************************************************************************
; EXTERN PARAMETERS
;****************************************************************************************
IMPORT osExcHandleEntry
IMPORT g_uwExcTbl
IMPORT g_bTaskScheduled
IMPORT it_is_memManangeFault
IMPORT it_is_busFault
IMPORT it_is_usageFault
;****************************************************************************************
; EQU
;****************************************************************************************
OS_EXC_CAUSE_NMI EQU 18
OS_EXC_CAUSE_HARDFAULT EQU 19
OS_EXC_CAUSE_MEMFAULT EQU 20
OS_EXC_CAUSE_BUSFAULT EQU 21
OS_EXC_CAUSE_USAGEFAULT EQU 22
OS_EXC_CAUSE_SVC EQU 23
HF_DEBUGEVT EQU 24
HF_VECTBL EQU 25
FLAG_ADDR_VALID EQU 0x10000 ; bit 16
FLAG_HWI_ACTIVE EQU 0x20000 ; bit 17
FLAG_NO_FLOAT EQU 0x10000000 ; bit 28
OS_NVIC_CFSR EQU 0xE000ED28 ; include BusFault/MemFault/UsageFault State Regeister
OS_NVIC_HFSR EQU 0xE000ED2C ; HardFault State Regeister
OS_NVIC_BFAR EQU 0xE000ED38
OS_NVIC_MMFAR EQU 0xE000ED34
OS_NVIC_ACT_BASE EQU 0xE000E300
OS_NVIC_SHCSRS EQU 0xE000ED24
OS_NVIC_SHCSR_MASK EQU 0xC00 ; SYSTICKACT and PENDSVACT
ADDR_SETPEND EQU 0XE000E200 ;the addr of setpend register
ADDR_CLRPEND EQU 0XE000E280 ;the addr of clrpend register
;****************************************************************************************
; Function:
; VOID NMI_Handler(VOID);
; Description:
; NMI Handler.
;****************************************************************************************
NMI_Handler
;/**
; * Before executing instruction 'B osExcDispatch', the value of R0 is as follows.
; * < R0 >:
; * +------------------------------------------------------+------------------------+
; * | 31-8 | 7-0 |
; * +------------------------------------------------------+------------------------+
; * | --- | OS_EXC_CAUSE_NMI |
; * +------------------------------------------------------+------------------------+
; * < R1 >: invalid
; */
MOVS R0, #OS_EXC_CAUSE_NMI
MOVS R1, #0
B osExcDispatch
;****************************************************************************************
; Function:
; VOID HardFault_Handler(VOID);
; Description:
; HardFault Handler.
;****************************************************************************************
HardFault_Handler
;/**
; * save fault type to R0
; */
MOVS R0, #OS_EXC_CAUSE_HARDFAULT
B osExcDispatch
;****************************************************************************************
; Function:
; VOID BusFault_Handler(VOID);
; Description:
; BusFault Handler.
;****************************************************************************************
BusFault_Handler
BL it_is_busFault
;****************************************************************************************
; Function:
; VOID MemManage_Handler(VOID);
; Description:
; MemManage Handler.
;****************************************************************************************
MemManage_Handler
BL it_is_memManangeFault
;****************************************************************************************
; Function:
; VOID UsageFault_Handler(VOID);
; Description:
; UsageFault Handler.
;****************************************************************************************
UsageFault_Handler
BL it_is_usageFault
;/**
; * When executing osExcDispatch, R2 will be used.
; */
osExcDispatch
LDR R2, =ADDR_SETPEND
LDR R2, [R2]
CMP R2,#0
BEQ _whether_in_initialization ;NO external interrupt occurred
;/**
; * Interrupts and initialization phase always use MSP.
; */
_ExcInMSP
;/**
; * Before executing instruction 'B _handleEntry', MSP is as follows.
; * MSP:
; * High addr--->|
; * +--------------------------------------------------------------------------------+---------
; * | R4-R11,PRIMASK,SAVED_SP | R0-R3,R12,LR,PC,xPSR |
; * +--------------------------------------------------------------------------------+---------
; * R13--->| Initial R13--->|<--- #32 --->|<---SAVED_SP
; * | (CPU auto saved) |
; *
; */
_NoFloatInMsp
CMP R2,#0 ;check r2 ,find the phase interrupts occurred
BEQ __11
MOVS R1,#0x2f ;in interrupt phase ,r1=47
LSLS R0,R0,#8
ORRS R0,R0,R1 ;make r1 available
B __12
__11
MOVS R1,#0 ;in initialization phase r1=0
LSLS R0,R0,#8
ORRS R0,R0,R1 ;make r1 available
__12
ADD R3, R13, #32 ; #32: skip [R0-R3,R12,LR,PC,xPSR]
PUSH {R3} ; push [SAVED_SP]: MSP+32 = Stack pointer in MSP before entering the exception
MRS R12, PRIMASK
MOV R3,R12
PUSH {R3}
MOV R3,R11
PUSH {R3}
MOV R3,R10
PUSH {R3}
MOV R3,R9
PUSH {R3}
MOV R3,R8
PUSH {R3}
PUSH {R7}
PUSH {R6}
PUSH {R5}
PUSH {R4} ; push R4-R11,PRIMASK to MSP in certain order
B _handleEntry
;/**
; * Check whether during the initialization phase.
; * If g_bTaskScheduled == 0, it is in the initialization phase.
; */
_whether_in_initialization
LDR R1, =g_bTaskScheduled
LDR R1, [R1]
MOVS R3,#1
TST R1,R3
BEQ _ExcInMSP ; initialization phase use MSP
;/**
; * Before executing _handleEntry, MSP is as follows.
; * MSP:
; * High addr--->|
; * +--------------------------------------------------------------------------------+---------
; * | R4-R11,PRIMASK,TASK_SP | R0-R3,R12,LR,PC,xPSR |
; * +--------------------------------------------------------------------------------+---------
; * R13--->| |<--- #32 --->|<---Initial R13
; * | (copied from PSP) |
; * |<---R2(no use)
; *
; * NOTE: stack frame: R0-R3,R12,LR,PC,xPSR.
; */
_NoFloatInPsp
MOVS R1,#1 ;in task ,r1 = 1
LSLS R0,R0,#8
ORRS R0,R0,R1 ;make r1 available
MOV R1, R13
SUB R13, #32 ; #32: MSP reserved, used to store stack frame in PSP
MRS R3, PSP
ADDS R3, R3, #32 ; PSP+32 = Stack pointer of the task before entering the exception
PUSH {R3} ; push task SP to MSP
MRS R3,PRIMASK
PUSH {R3}
MOV R3,R11
PUSH {R3}
MOV R3,R10
PUSH {R3}
MOV R3,R9
PUSH {R3}
MOV R3,R8
PUSH {R3}
PUSH {R7}
PUSH {R6}
PUSH {R5}
PUSH {R4}
MRS R3,PSP
;/* Copy stack frame from the stack of the current running task to MSP */
LDMIA R3!, {R4-R7}
SUBS R1,#0X20
STMIA R1!, {R4-R7}
LDMIA R3!, {R4-R7}
STMIA R1!, {R4-R7}
;/**
; * _handleEntry: Call osExcHandleEntry
; * param1: R0 --- type num and phase
; * param2: R1 --- the sp being used(in Cortex-M0,it is only for debug )
; * param3: R2 --- external interrupt ID
; * param4: R3 --- Point to the top of the stack(R4 or S16) that the exception stack frame in MSP.
; */
_handleEntry
MOV R3, R13
MOV R1,R13
CPSID I
LDR R4,=osExcHandleEntry
MOV PC,R4
NOP
ALIGN
END
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m0/los_exc.c
================================================
/*----------------------------------------------------------------------------
* Copyright (c) <2013-2015>, <Huawei Technologies Co., Ltd>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*---------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
* Notice of Export Control Law
* ===============================================
* Huawei LiteOS may be subject to applicable export control laws and regulations, which might
* include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
* Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
* applicable export control laws and regulations.
*---------------------------------------------------------------------------*/
#include "los_exc.inc"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif /* __cpluscplus */
#endif /* __cpluscplus */
#if (LOSCFG_PLATFORM_EXC == YES)
UINT32 g_uwCurNestCount = 0;
EXC_INFO_S m_stExcInfo;
/*
* CFSR register, include UFSR,BFSR and MFSR.
*
* +----------------------------------------------------------------------------------+
* | UFSR |
* |-----------+-----------+-----------+-------+------+-------+----------+------------|
* | 31 - 26 | 25 | 24 | 23-20 | 19 | 18 | 17 | 16 |
* |-----------+-----------+-----------+-------+------+-------+----------+------------|
* | --- | DIVBYZERO | UNALIGNED | --- | NOCP | INVPC | INVSTATE | UNDEFINSTR |
* +----------------------------------------------------------------------------------+
*
* +----------------------------------------------------------------------------------+
* | BFSR |
* |-----------+-----+--------+--------+----------+-------------+-----------+---------|
* | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
* |-----------+-----+--------+--------+----------+-------------+-----------+---------|
* | BFARVALID | --- | LSPERR | STKERR | UNSTKERR | IMPRECISERR | PRECISERR | IBUSERR |
* +----------------------------------------------------------------------------------+
*
* +----------------------------------------------------------------------------------+
* | MFSR |
* |-----------+-------+---------+---------+-----------+-------+----------+-----------|
* | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
* |-----------+-------+---------+---------+-----------+-------+----------+-----------|
* | MMARVALID | --- | MLSPERR | MSTKERR | MUNSTKERR | --- | DACCVIOL | ICACCVIOL |
* +----------------------------------------------------------------------------------+
*/
UINT8 g_uwExcTbl[32] =
{
0, 0, 0, 0, 0, 0, OS_EXC_UF_DIVBYZERO, OS_EXC_UF_UNALIGNED,
0, 0, 0, 0, OS_EXC_UF_NOCP, OS_EXC_UF_INVPC, OS_EXC_UF_INVSTATE, OS_EXC_UF_UNDEFINSTR,
0, 0, 0, OS_EXC_BF_STKERR, OS_EXC_BF_UNSTKERR, OS_EXC_BF_IMPRECISERR, OS_EXC_BF_PRECISERR, OS_EXC_BF_IBUSERR,
0, 0, 0, OS_EXC_MF_MSTKERR, OS_EXC_MF_MUNSTKERR, 0, OS_EXC_MF_DACCVIOL, OS_EXC_MF_IACCVIOL
};
#if (LOSCFG_SAVE_EXC_INFO == YES)
VOID *m_puwExcContent;
UINT32 g_uwArraySize = 0;
EXC_INFO_ARRAY_S m_stExcArray[OS_EXC_TYPE_MAX - 1];
static VOID osExcSave2DDR(VOID);
#endif
extern VOID LOS_Reboot(VOID);
/*****************************************************************************
Function : osExcInfoDisplay
Description : EXC info display
Input : pstExc --- Pointer to the EXC data
Output : None
Return : None
*****************************************************************************/
LITE_OS_SEC_TEXT VOID osExcInfoDisplay(EXC_INFO_S *pstExc)
{
//in gcc env
PRINT_ERR("Phase = 0x%8x\n", pstExc->usPhase);
PRINT_ERR("ThrdPid = 0x%8x\n", pstExc->uwThrdPid);
PRINT_ERR("R0 = 0x%8x\t%16u\n", pstExc->pstContext->uwR0,pstExc->pstContext->uwR0);
PRINT_ERR("R1 = 0x%8x\t%16u\n", pstExc->pstContext->uwR1,pstExc->pstContext->uwR1);
PRINT_ERR("R2 = 0x%8x\t%16u\n", pstExc->pstContext->uwR2,pstExc->pstContext->uwR2);
PRINT_ERR("R3 = 0x%8x\t%16u\n", pstExc->pstContext->uwR3,pstExc->pstContext->uwR3);
PRINT_ERR("R4 = 0x%8x\t%16u\n", pstExc->pstContext->uwR4,pstExc->pstContext->uwR4);
PRINT_ERR("R5 = 0x%8x\t%16u\n", pstExc->pstContext->uwR5,pstExc->pstContext->uwR5);
PRINT_ERR("R6 = 0x%8x\t%16u\n", pstExc->pstContext->uwR6,pstExc->pstContext->uwR6);
PRINT_ERR("R7 = 0x%8x\t%16u\n", pstExc->pstContext->uwR7,pstExc->pstContext->uwR7);
PRINT_ERR("R8 = 0x%8x\t%16u\n", pstExc->pstContext->uwR8,pstExc->pstContext->uwR8);
PRINT_ERR("R9 = 0x%8x\t%16u\n", pstExc->pstContext->uwR9,pstExc->pstContext->uwR9);
PRINT_ERR("R10 = 0x%8x\t%16u\n", pstExc->pstContext->uwR10,pstExc->pstContext->uwR10);
PRINT_ERR("R11 = 0x%8x\t%16u\n", pstExc->pstContext->uwR11,pstExc->pstContext->uwR11);
PRINT_ERR("R12 = 0x%8x\t%16u\n", pstExc->pstContext->uwR12,pstExc->pstContext->uwR12);
PRINT_ERR("PriMask = 0x%8x\t%16u\n", pstExc->pstContext->uwPriMask,pstExc->pstContext->uwPriMask);
PRINT_ERR("SP = 0x%8x\t%16u\n", pstExc->pstContext->uwSP,pstExc->pstContext->uwSP);
PRINT_ERR("LR = 0x%8x\t%16u\n", pstExc->pstContext->uwLR,pstExc->pstContext->uwLR);
PRINT_ERR("PC = 0x%8x\t%16u\n", pstExc->pstContext->uwPC,pstExc->pstContext->uwPC);
PRINT_ERR("xPSR = 0x%8x\t%16u\n", pstExc->pstContext->uwxPSR,pstExc->pstContext->uwxPSR);
PRINT_ERR("\nplease use the addr2line tool to analyze the call stack on PC:\n");
PRINT_ERR("addr2line -e (xxx.axf/xxx.elf/xxx.out) -a -f ");
for (UINT32 i = 0; i < pstExc->uwCallStackDepth; i++)
{
printf("%8x", pstExc->uwCallStack[i]);
}
printf("\n");
return;
}
/*****************************************************************************
Function : osExcCallStackAnalysis
Description : Call stack analysis
Input : pstExc --- point to exception info
Output : None
Return : None
*****************************************************************************/
LITE_OS_SEC_TEXT VOID osExcCallStackAnalysis(EXC_INFO_S *pstExc)
{
UINT32 uwSP;
UINT32 uwLR;
UINT32 uwPC;
UINT32 uwStackStartAddr;
UINT32 uwStackSize;
UINT32 uwDepth = 0;
BOOL bFirstLrValid = FALSE;
uwSP = pstExc->pstContext->uwSP; /* sp pointer before entering exception */
/*
* save first and second depth
* first: PC before entering exception
* second: (LR - 4) before entering exception
* NOTE: If an exception occurs in the interrupt, LR may be EXC_RETURN, so we must make sure
* that LR is valid, exclude EXC_RETURN.
*/
pstExc->uwCallStack[uwDepth++] = pstExc->pstContext->uwPC;
if ((pstExc->pstContext->uwLR >= LOSCFG_EXC_CODE_START_ADDR) && \
(pstExc->pstContext->uwLR <= LOSCFG_EXC_CODE_START_ADDR + LOSCFG_EXC_CODE_SIZE))
{
pstExc->uwCallStack[uwDepth++] = pstExc->pstContext->uwLR - sizeof(VOID *); /* lr = pc + 4 */
bFirstLrValid = TRUE;
int tmp = uwDepth - 1;
}
/*
* get the start address and size of the stack before entering the exception
*/
if (pstExc->usPhase == OS_EXC_IN_TASK) /* task use PSP */
{
uwStackStartAddr = g_stLosTask.pstRunTask->uwTopOfStack;
uwStackSize = g_stLosTask.pstRunTask->uwStackSize;
}
else /* init and interrupt use MSP */
{
uwStackStartAddr = LOSCFG_EXC_MSP_START_ADDR;
uwStackSize = LOSCFG_EXC_MSP_SIZE;
}
/*
* check stack overflow, if so, compensate for overflow, readjust stack start address and size.
*/
if (uwSP < uwStackStartAddr) /* stack top overflow */
{
if (pstExc->usPhase == OS_EXC_IN_TASK)
{
PRINT_ERR("task %s stack top overflow\n", g_stLosTask.pstRunTask->pcTaskName);
}
else
{
PRINT_ERR("MSP top overflow\n");
}
uwStackSize += (uwStackStartAddr - uwSP); /* compensate overflow size */
uwStackStartAddr = uwSP; /* readjust stack start address */
}
/*
* Traverses the entire stack from the top of the stack to the bottom of the stack,
* find all LR.
*/
for (; uwSP < uwStackStartAddr + uwStackSize; uwSP += sizeof(UINT32*))
{
uwLR = *(UINT32 *)uwSP;
if (uwLR % 2 == 0) /* Thumb instruction, LR bit0 == 1 */
{
continue;
}
/*
* It may be LR, which must be further determined based on the start address
* and end address of the code segment.
*/
if ((uwLR >= LOSCFG_EXC_CODE_START_ADDR) && (uwLR <= LOSCFG_EXC_CODE_START_ADDR + LOSCFG_EXC_CODE_SIZE) \
&& (uwDepth < LOSCFG_EXC_CALL_STACK_ANALYSIS_MAX_DEPTH))
{
uwPC = uwLR - sizeof(VOID *); /* lr = pc + 4 */
/* the second depth(first LR) has been saved */
if ((uwDepth == 2) && (uwPC == pstExc->uwCallStack[1]) && (bFirstLrValid == TRUE))
{
continue;
}
pstExc->uwCallStack[uwDepth++] = uwPC;
}
}
pstExc->uwCallStackDepth = uwDepth; /* save call stack depth */
return;
}
/*****************************************************************************
Function : osExcHandleEntry
Description : EXC handler entry
Input : uwExcType --- EXC type
: uwFaultAddr --- The address of an accurate address access error
: uwPid --- Interrupt number
: puwExcBufAddr --- Point to the stack frame without FPU
Output : None
Return : None
*****************************************************************************/
LITE_OS_SEC_TEXT VOID osExcHandleEntry(UINT32 uwExcType, UINT32 uwUsingSp, UINT32 uwID, EXC_CONTEXT_S *pstExcBufAddr)
{
g_uwCurNestCount++;
#if (LOSCFG_PLATFORM_HWI == YES)
extern UINT32 g_vuwIntCount;
g_vuwIntCount++;
#endif
int tmp_type = uwExcType & 0x0000ff00;
tmp_type = tmp_type >> 8;
/* Save interrupt nesting times */
m_stExcInfo.usNestCnt = (UINT16)g_uwCurNestCount;
/* uwExcType 8-15 bits: exc type */
m_stExcInfo.usType = (UINT16)tmp_type;
#if (LOSCFG_SAVE_EXC_INFO == YES)
/* Initializing a pointer to save an exception context */
m_puwExcContent = (UINT32 *)m_aucTaskArray;
#endif
/* Save the fault address when an exception occurs if it is valid */
/* Save the phase of the exception */
extern BOOL g_bTaskScheduled;
int tmp_phase = uwExcType;
tmp_phase = uwExcType & 0x000000ff;
m_stExcInfo.usPhase = (UINT16)tmp_phase;
m_stExcInfo.uwThrdPid = uwID; /* interrupt number */
m_stExcInfo.usFpuContext = 0;
m_stExcInfo.pstContext = pstExcBufAddr; /* point to r3 */
osExcCallStackAnalysis(&m_stExcInfo);
osExcInfoDisplay(&m_stExcInfo);
LOS_Reboot();
}
#if (LOSCFG_SAVE_EXC_INFO == YES)
/*****************************************************************************
Function : osExcSaveIntStatus
Description : Save NVIC register group
Input : None
Output : None
Return : None
*****************************************************************************/
static VOID osExcSaveIntStatus(VOID)
{
/* Save exc type */
*((UINT32 *)m_puwExcContent) = OS_EXC_TYPE_NVIC;
m_puwExcContent = (UINT8 *)m_puwExcContent + 4;
/* Save total size of NVIC */
*((UINT32 *)m_puwExcContent) = 0x164; // = OS_NVIC_INT_ENABLE_SIZE + OS_NVIC_INT_PEND_SIZE + OS_NVIC_INT_ACT_SIZE + OS_NVIC_INT_PRI_SIZE + 12 + 4 + 4
m_puwExcContent = (UINT8 *)m_puwExcContent + 4;
/* Save interrupt enable register group (start addr: 0xE000E100, size: 32bytes, CMSIS-Core: NVIC->ISER[0 - 7]) */
memcpy(m_puwExcContent, (const void *)OS_NVIC_SETENA_BASE, OS_NVIC_INT_ENABLE_SIZE);
m_puwExcContent =(UINT8 *)m_puwExcContent + OS_NVIC_INT_ENABLE_SIZE;
/* Save interrupt pend register group (start addr: 0xE000E200, size: 32bytes, CMSIS-Core: NVIC->ISPR[0 - 7]) */
memcpy(m_puwExcContent, (const void *)OS_NVIC_SETPEND_BASE, OS_NVIC_INT_PEND_SIZE);
m_puwExcContent = (UINT8 *)m_puwExcContent + OS_NVIC_INT_PEND_SIZE;
/* Save interrupt active status register group (start addr: 0xE000E300, size: 32bytes, CMSIS-Core: NVIC->IABR[0 - 7]) */
memcpy(m_puwExcContent, (const void *)OS_NVIC_INT_ACT_BASE, OS_NVIC_INT_ACT_SIZE);
m_puwExcContent = (UINT8 *)m_puwExcContent + OS_NVIC_INT_ACT_SIZE;
/* Save interrupt priority register group (start addr: 0xE000E400, size: 240bytes), CMSIS-Core: NVIC->IP[0 - 239] */
memcpy(m_puwExcContent, (const void *)OS_NVIC_PRI_BASE, OS_NVIC_INT_PRI_SIZE);
m_puwExcContent = (UINT8 *)m_puwExcContent + OS_NVIC_INT_PRI_SIZE;
/* Save system exception priority register group (start addr: 0xE000ED18, size: 12bytes, CMSIS-Core: SCB->SHP[0 - 11]) */
memcpy(m_puwExcContent, (const void *)OS_NVIC_EXCPRI_BASE, 12);
m_puwExcContent = (UINT8 *)m_puwExcContent + 12;
/* Save system processing control and state register group (start addr: 0xE000ED24, size: 4bytes, CMSIS-Core: SCB->SHCSR) */
memcpy(m_puwExcContent, (const void *)OS_NVIC_SHCSR, 4);
m_puwExcContent = (UINT8 *)m_puwExcContent + 4;
/* Save interrupt control and status register group (start addr: 0xE000ED04, size: 4bytes, CMSIS-Core: SCB->ICSR) */
memcpy(m_puwExcContent, (const void *)OS_NVIC_INT_CTRL, 4);
m_puwExcContent = (UINT8 *)m_puwExcContent + 4;
return;
}
/*****************************************************************************
Function : osExcRegister
Description : Register exception
Input : uwType --- exception type
: pFunc --- exception callback function
: pArg --- exception save info arg, not pFunc
Output : None
Return : None
*****************************************************************************/
VOID osExcRegister(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc, VOID *pArg)
{
EXC_INFO_ARRAY_S *pstExcInfo;
if (uwType == 0 || uwType >= OS_EXC_TYPE_MAX || pFunc == NULL)
{
PRINT_ERR("osExcRegister ERROR!\n");
return;
}
pstExcInfo = &(m_stExcArray[uwType - 1]);
pstExcInfo->uwType = uwType;
pstExcInfo->pFnExcInfoCb = pFunc;
pstExcInfo->pArg = pArg;
pstExcInfo->uwValid = TRUE;
}
/*****************************************************************************
Function : osExcSaveSysInfo
Description : Saving exception information by calling callback function recursively
Input : uwType --- exception type(OS_EXC_TYPE_CONTEXT+1 ---> OS_EXC_TYPE_MAX-1)
: pFunc --- callback function
: uwLoop --- loop total count
: uwLen --- The size of the data saved each time
: uwIdx --- loop index
Output : None
Return : None
*****************************************************************************/
VOID osExcSaveSysInfo(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc, UINT32 uwLoop, UINT32 uwLen, UINT32 uwIdx)
{
UINT32 uwRet;
UINT32 uwBuffer[OS_EXC_MAX_BUF_LEN];
/* Save exception type and size */
*((UINT32 *)m_puwExcContent) = uwType;
m_puwExcContent = (UINT8 *)m_puwExcContent + 4;
*((UINT32 *)m_puwExcContent) = uwLen * (uwLoop - uwIdx);
m_puwExcContent = (UINT8 *)m_puwExcContent + 4;
for (; uwIdx < uwLoop; uwIdx++)
{
memset((VOID *)uwBuffer, 0, sizeof(UINT32) * OS_EXC_MAX_BUF_LEN);
uwRet = pFunc(uwIdx, (VOID *)uwBuffer);
if (LOS_OK == uwRet)
{
memcpy(m_puwExcContent, (VOID *)uwBuffer, uwLen);
}
m_puwExcContent =(UINT8 *)m_puwExcContent + uwLen;
}
}
/*****************************************************************************
Function : osExcSaveInfo
Description : save exception info
Input : uwType --- exception type(OS_EXC_TYPE_CONTEXT+1 ---> OS_EXC_TYPE_MAX-1)
: pFunc --- exception callback
: pArg --- register arg, used to generate the arg passed to the callback
Output : None
Return : None
*****************************************************************************/
static VOID osExcSaveInfo(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc, VOID *pArg)
{
UINT32 uwLen;
UINT32 uwIdx;
UINT32 uwLoop;
UINT32 uwTaskSwitchCount = 0;
OS_TASK_SWITCH_INFO *pstTaskSwitchInfo;
switch(uwType)
{
case OS_EXC_TYPE_TSK: /* save task info */
uwLen = sizeof(TSK_INFO_S);
uwLoop = *(UINT32 *)pArg;
uwIdx = 0;
break;
case OS_EXC_TYPE_QUE: /* save queue info */
uwLen = sizeof(QUEUE_INFO_S);
uwLoop = *(UINT32 *)pArg;
uwIdx = 0;
break;
case OS_EXC_TYPE_NVIC: /* save NVIC info */
(VOID)pFunc(0, 0);
goto END;
case OS_EXC_TYPE_TSK_SWITCH: /* save task switch info */
pstTaskSwitchInfo = pArg;
uwTaskSwitchCount = pstTaskSwitchInfo->ucIsFull & 0x7F;
uwLen = sizeof(UINT32) + sizeof(CHAR) * LOS_TASK_NAMELEN; /* auwPID + acName */
if (pstTaskSwitchInfo->ucIsFull & 0x80)
{
uwIdx = pstTaskSwitchInfo->ucIdx;
uwLoop = uwIdx + uwTaskSwitchCount;
}
else
{
uwIdx = 0;
uwLoop = pstTaskSwitchInfo->ucIdx;
}
break;
case OS_EXC_TYPE_MEM: /* save mem info */
uwLen = sizeof(MEM_INFO_S);
uwLoop = *(UINT32 *)pArg;
uwIdx = 0;
break;
default:
goto END;
}
osExcSaveSysInfo(uwType, (EXC_INFO_SAVE_CALLBACK)pFunc, uwLoop, uwLen, uwIdx);
END:
return;
}
/*****************************************************************************
Function : osExcSave2DDR
Description : Save exception info to RAM
Input : None
Output : None
Return : None
*****************************************************************************/
static VOID osExcSave2DDR(VOID)
{
UINT32 uwIdx = 0;
UINT32 uwExcContextSize;
if (m_stExcInfo.usFpuContext == 1)
{
uwExcContextSize = sizeof(EXC_CONTEXT_S);
}
else
{
uwExcContextSize = sizeof(EXC_CONTEXT_S) - 136; /* except FPU register */
}
memset(m_puwExcContent, 0xff, g_uwArraySize);
/* Cortex-M type */
*((UINT32 *)m_puwExcContent) = 4;
m_puwExcContent = (UINT8 *)m_puwExcContent + 4;
/*
* Save exception type: OS_EXC_TYPE_CONTEXT
*/
*((UINT32 *)m_puwExcContent) = OS_EXC_TYPE_CONTEXT;
m_puwExcContent = (UINT8 *)m_puwExcContent + 4;
/* The size of struct EXC_INFO_S(except member EXC_CONTEXT_S*) and exception context size */
*((UINT32 *)m_puwExcContent) = sizeof(EXC_INFO_S) - sizeof(EXC_CONTEXT_S *) + uwExcContextSize;
m_puwExcContent = (UINT8 *)m_puwExcContent + 4;
/* Save struct m_stExcInfo except m_stExcInfo.pstContext */
memcpy((VOID *)m_puwExcContent, (VOID *)&m_stExcInfo, sizeof(EXC_INFO_S) - sizeof(EXC_CONTEXT_S *));
m_puwExcContent = (UINT8 *)m_puwExcContent + sizeof(EXC_INFO_S) - sizeof(EXC_CONTEXT_S *);
/* Save struct EXC_CONTEXT_S */
if (m_stExcInfo.usFpuContext == 0)
{
#if FPU_EXIST
/* m_stExcInfo.pstContext: init --- point to S16, S16->S31 invalid
* + 64 --- point to uwR4
* copy uwR4 -> uwxPSR */
memcpy((VOID *)m_puwExcContent, (UINT8 *)m_stExcInfo.pstContext + 64, uwExcContextSize);
#else
memcpy((VOID *)m_puwExcContent, m_stExcInfo.pstContext, uwExcContextSize);
#endif
}
else
{
memcpy((VOID *)m_puwExcContent, m_stExcInfo.pstContext, uwExcContextSize);
}
m_puwExcContent = (UINT8 *)m_puwExcContent + uwExcContextSize;
/*
* Save exception type: OS_EXC_TYPE_CONTEXT+1 ---> OS_EXC_TYPE_MAX-1
*/
for (uwIdx = 0; uwIdx < OS_EXC_TYPE_MAX - 1; uwIdx++)
{
if (m_stExcArray[uwIdx].uwValid == FALSE)
{
continue;
}
osExcSaveInfo(m_stExcArray[uwIdx].uwType, m_stExcArray[uwIdx].pFnExcInfoCb, m_stExcArray[uwIdx].pArg);
}
/*
* Save exception type: OS_EXC_TYPE_MAX
*/
*((UINT32 *)m_puwExcContent) = OS_EXC_TYPE_MAX;
m_puwExcContent = (UINT8*)m_puwExcContent + 4;
return;
}
#endif /*(LOSCFG_SAVE_EXC_INFO == YES)*/
/*****************************************************************************
Function : osExcInit
Description : Initializes the EXC
Input : None
Output : None
Return : None
*****************************************************************************/
LITE_OS_SEC_TEXT_INIT VOID osExcInit(UINT32 uwArraySize)
{
#if (LOSCFG_PLATFORM_HWI == YES)
/* Register exception handler to interrupt vector table in RAM */
m_pstHwiForm[-14 + OS_SYS_VECTOR_CNT] = NMI_Handler;
m_pstHwiForm[-13 + OS_SYS_VECTOR_CNT] = HardFault_Handler;
m_pstHwiForm[-12 + OS_SYS_VECTOR_CNT] = MemManage_Handler;
m_pstHwiForm[-11 + OS_SYS_VECTOR_CNT] = BusFault_Handler;
m_pstHwiForm[-10 + OS_SYS_VECTOR_CNT] = UsageFault_Handler;
m_pstHwiForm[-5 + OS_SYS_VECTOR_CNT] = SVC_Handler;
#endif
/* Enable USGFAULT(BIT_18), BUSFAULT(BIT_17), MEMFAULT(BIT_16) */
*(volatile UINT32 *)OS_NVIC_SHCSR |= 0x70000;
/* Enable DIV 0(BIT_4) exception, unaligned(BIT_3) disable */
*(volatile UINT32 *)OS_NVIC_CCR |= 0x10;
#if (LOSCFG_SAVE_EXC_INFO == YES)
g_uwArraySize = uwArraySize;
osExcRegister((EXC_INFO_TYPE)OS_EXC_TYPE_NVIC, (EXC_INFO_SAVE_CALLBACK)osExcSaveIntStatus, NULL);
#endif
}
VOID osBackTrace(VOID)
{
return;
}
#endif /*(LOSCFG_PLATFORM_EXC == YES)*/
#ifdef __cplusplus
#if __cplusplus
}
#endif /* __cpluscplus */
#endif /* __cpluscplus */
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m0/los_exc.inc
================================================
/*----------------------------------------------------------------------------
* Copyright (c) <2013-2015>, <Huawei Technologies Co., Ltd>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*---------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
* Notice of Export Control Law
* ===============================================
* Huawei LiteOS may be subject to applicable export control laws and regulations, which might
* include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
* Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
* applicable export control laws and regulations.
*---------------------------------------------------------------------------*/
#ifndef _LOS_EXC_INC
#define _LOS_EXC_INC
#include "los_exc.ph"
#include "los_sys.ph"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif /* __cpluscplus */
#endif /* __cpluscplus */
#ifdef __cplusplus
#if __cplusplus
}
#endif /* __cpluscplus */
#endif /* __cpluscplus */
#endif /* _LOS_EXC_INC */
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m0/los_exc.ph
================================================
/*----------------------------------------------------------------------------
* Copyright (c) <2013-2015>, <Huawei Technologies Co., Ltd>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*---------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
* Notice of Export Control Law
* ===============================================
* Huawei LiteOS may be subject to applicable export control laws and regulations, which might
* include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
* Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
* applicable export control laws and regulations.
*---------------------------------------------------------------------------*/
#ifndef _LOS_EXC_PH
#define _LOS_EXC_PH
#include "los_exc.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif /* __cplusplus */
#endif /* __cplusplus */
#if (LOSCFG_PLATFORM_EXC == YES)
typedef enum
{
OS_EXC_TYPE_CONTEXT = 0,
OS_EXC_TYPE_TSK = 1,
OS_EXC_TYPE_QUE = 2,
OS_EXC_TYPE_NVIC = 3,
OS_EXC_TYPE_TSK_SWITCH = 4,
OS_EXC_TYPE_MEM = 5,
OS_EXC_TYPE_MAX = 6
} EXC_INFO_TYPE;
typedef struct tagExcInfoCallBackArray
{
EXC_INFO_TYPE uwType;
UINT32 uwValid;
EXC_INFO_SAVE_CALLBACK pFnExcInfoCb;
VOID* pArg;
}EXC_INFO_ARRAY_S;
#define OS_NVIC_SHCSR 0xE000ED24
#define OS_NVIC_CCR 0xE000ED14
#define OS_NVIC_INT_ENABLE_SIZE 0x20
#define OS_NVIC_INT_PRI_SIZE 0xF0
#define OS_NVIC_INT_PEND_SIZE OS_NVIC_INT_ACT_SIZE
#define OS_NVIC_INT_ACT_SIZE OS_NVIC_INT_ENABLE_SIZE
#define MAX_SCENE_INFO_SIZE (8 + sizeof(EXC_INFO_S) - 4 + sizeof(EXC_CONTEXT_S))
#define MAX_TSK_INFO_SIZE (8 + sizeof(TSK_INFO_S) * (LOSCFG_BASE_CORE_TSK_LIMIT + 1))
#define MAX_INT_INFO_SIZE (8 + 0x164)
#if (LOSCFG_BASE_IPC_QUEUE == YES)
#define MAX_QUEUE_INFO_SIZE (8 + sizeof(QUEUE_INFO_S) * LOSCFG_BASE_IPC_QUEUE_LIMIT)
#else
#define MAX_QUEUE_INFO_SIZE (0)
#endif
#if (LOSCFG_BASE_CORE_EXC_TSK_SWITCH == YES)
#define MAX_SWITCH_INFO_SIZE (8 + (sizeof(UINT32) + sizeof(CHAR) * LOS_TASK_NAMELEN) * OS_TASK_SWITCH_INFO_COUNT)
#else
#define MAX_SWITCH_INFO_SIZE (0)
#endif
#if (LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK == YES)
#define MAX_MEM_INFO_SIZE (8 + sizeof(MEM_INFO_S) * OS_SYS_MEM_NUM)
#else
#define MAX_MEM_INFO_SIZE (0)
#endif
#if (LOSCFG_SAVE_EXC_INFO == YES)
#define MAX_EXC_MEM_SIZE ( 4 + MAX_SCENE_INFO_SIZE + MAX_TSK_INFO_SIZE + MAX_QUEUE_INFO_SIZE + MAX_INT_INFO_SIZE + MAX_SWITCH_INFO_SIZE + MAX_MEM_INFO_SIZE + 4)
#else
#define MAX_EXC_MEM_SIZE ( 0 )
#endif
extern VOID osExcRegister(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc, VOID *pArg);
#endif
#ifdef __cplusplus
#if __cplusplus
}
#endif /* __cplusplus */
#endif /* __cplusplus */
#endif
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m3/gcc/los_dispatch_gcc.S
================================================
/** ----------------------------------------------------------------------------
* Copyright (c) <2016-2018>, <Huawei Technologies Co., Ltd>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*---------------------------------------------------------------------------*/
/** ----------------------------------------------------------------------------
* Notice of Export Control Law
* ===============================================
* Huawei LiteOS may be subject to applicable export control laws and regulations, which might
* include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
* Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
* applicable export control laws and regulations.
*---------------------------------------------------------------------------*/
/****************************************************************************************
* EXPORT FUNCTIONS
****************************************************************************************/
.global LOS_IntLock
.global LOS_IntUnLock
.global LOS_IntRestore
.global LOS_StartToRun
.global osTaskSchedule
.global PendSV_Handler
/****************************************************************************************
* EXTERN PARAMETERS
****************************************************************************************/
.extern g_stLosTask
.extern g_pfnTskSwitchHook
.extern g_bTaskScheduled
/****************************************************************************************
* EQU
****************************************************************************************/
.equ OS_NVIC_INT_CTRL, 0xE000ED04 /* Interrupt Control and State Register. */
.equ OS_NVIC_PENDSVSET, 0x10000000 /* Value to trigger PendSV exception. */
.equ OS_NVIC_SYSPRI2, 0xE000ED20 /* System Handler Priority Register 2. */
.equ OS_NVIC_PENDSV_SYSTICK_PRI, 0xFFFF0000 /* SysTick + PendSV priority level (lowest). */
.equ OS_TASK_STATUS_RUNNING, 0x0010 /* Task Status Flag (RUNNING). */
/****************************************************************************************
* CODE GENERATION DIRECTIVES
****************************************************************************************/
.section .text
.thumb
.syntax unified
.arch armv7-m
/****************************************************************************************
* Function:
* VOID LOS_StartToRun(VOID);
* Description:
* Start the first task, which is the highest priority task in the priority queue.
* Other tasks are started by task scheduling.
****************************************************************************************/
.type LOS_StartToRun, %function
LOS_StartToRun:
CPSID I
/**
* Set PendSV and SysTick prority to the lowest.
* read ---> modify ---> write-back.
*/
LDR R0, =OS_NVIC_SYSPRI2
LDR R1, =OS_NVIC_PENDSV_SYSTICK_PRI
LDR R2, [R0]
ORR R1, R1, R2
STR R1, [R0]
/**
* Set g_bTaskScheduled = 1.
*/
LDR R0, =g_bTaskScheduled
MOV R1, #1
STR R1, [R0]
/**
* Set g_stLosTask.pstRunTask = g_stLosTask.pstNewTask.
*/
LDR R0, =g_stLosTask
LDR R1, [R0, #4]
STR R1, [R0]
/**
* Set g_stLosTask.pstRunTask->usTaskStatus |= OS_TASK_STATUS_RUNNING.
*/
LDR R1, [R0]
LDRH R2, [R1, #4]
MOV R3, #OS_TASK_STATUS_RUNNING
ORR R2, R2, R3
STRH R2, [R1, #4]
/**
* Restore the default stack frame(R0-R3,R12,LR,PC,xPSR) of g_stLosTask.pstRunTask to R0-R7.
* Return by setting the CONTROL register.
*
* The initial stack of the current running task is as follows:
*
* POP: Restore the context of the current running task ===>|
* High addr--->|
* Bottom of the stack--->|
* ----------+-----------------------+--------------------------------------+
* | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
* ----------+-----------------------+--------------------------------------+
* |<---Top of the stack, restored from g_stLosTask.pstRunTask->pStackPointer
* |<--- skip --->|<--- copy to R0-R7 --->|
* R12 to PSP--->|
* Stack pointer after LOS_StartToRun--->|
*/
LDR R12, [R1]
ADD R12, R12, #36 /* skip R4-R11, PRIMASK. */
LDMFD R12!, {R0-R7}
/**
* Set the stack pointer of g_stLosTask.pstRunTask to PSP.
*/
MSR PSP, R12
/**
* Set the CONTROL register, after schedule start, privilege level and stack = PSP.
*/
MOV R12, #2
MSR CONTROL, R12
/**
* Enable interrupt. (The default PRIMASK value is 0, so enable directly)
*/
MOV LR, R5
CPSIE I
/**
* Jump directly to the default PC of g_stLosTask.pstRunTask, the field information
* of the main function will be destroyed and will never be returned.
*/
BX R6
/****************************************************************************************
* Function:
* UINTPTR LOS_IntLock(VOID);
* Description:
* Disable all interrupts except Reset,NMI and HardFault.
* The value of currnet interruption state will be returned to the caller to save.
*
* Function:
* VOID LOS_IntRestore(UINTPTR uvIntSave);
* Description:
* Restore the locked interruption of LOS_IntLock.
* The caller must pass in the value of interruption state previously saved.
****************************************************************************************/
.type LOS_IntLock, %function
LOS_IntLock:
MRS R0, PRIMASK
CPSID I
BX LR
.type LOS_IntUnLock, %function
LOS_IntUnLock:
MRS R0, PRIMASK
CPSIE I
BX LR
.type LOS_IntRestore, %function
LOS_IntRestore:
MSR PRIMASK, R0
BX LR
/****************************************************************************************
* Function:
* VOID osTaskSchedule(VOID);
* Description:
* Start the task swtich process by software trigger PendSV interrupt.
****************************************************************************************/
.type osTaskSchedule, %function
osTaskSchedule:
LDR R0, =OS_NVIC_INT_CTRL
LDR R1, =OS_NVIC_PENDSVSET
STR R1, [R0]
BX LR
/****************************************************************************************
* Function:
* VOID PendSV_Handler(VOID);
* Description:
* PendSV interrupt handler, switch the context of the task.
* First: Save the context of the current running task(g_stLosTask.pstRunTask)
* to its own stack.
* Second: Restore the context of the next running task(g_stLosTask.pstNewTask)
* from its own stack.
****************************************************************************************/
.type PendSV_Handler, %function
PendSV_Handler:
/**
* R12: Save the interruption state of the current running task.
* Disable all interrupts except Reset,NMI and HardFault
*/
MRS R12, PRIMASK
CPSID I
/**
* Call task switch hook.
*/
LDR R2, =g_pfnTskSwitchHook
LDR R2, [R2]
CBZ R2, TaskSwitch
PUSH {R12, LR}
BLX R2
POP {R12, LR}
TaskSwitch:
/**
* R0 = now stack pointer of the current running task.
*/
MRS R0, PSP
/**
* Save the stack frame(R4-R11) of the current running task.
* R12 save the PRIMASK value of the current running task.
* NOTE: Before entering the exception handler function, these registers
* (xPSR,PC,LR,R12,R3-R0) have been automatically
* saved by the CPU in the stack of the current running task.
*
* The stack of the current running task is as follows:
*
* |<=== PUSH: Save the context of the current running task
* | High addr--->|
* ----------+-----------------------+--------------------------------------+-----
* | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
* ----------+-----------------------+--------------------------------------+-----
* Stack pointer before entering exception--->|
* |<--- cpu auto saved --->|
* |<---PSP to R0
* |<---Top of the stack, save to g_stLosTask.pstRunTask->pStackPointer
*/
STMFD R0!, {R4-R12} /* save the core registers and PRIMASK. */
/**
* R5,R8.
*/
LDR R5, =g_stLosTask
MOV R8, #OS_TASK_STATUS_RUNNING
/**
* Save the stack pointer of the current running task to TCB.
* (g_stLosTask.pstRunTask->pStackPointer = R0)
*/
LDR R6, [R5]
STR R0, [R6]
/**
* Clear the RUNNING state of the current running task.
* (g_stLosTask.pstRunTask->usTaskStatus &= ~OS_TASK_STATUS_RUNNING)
*/
LDRH R7, [R6, #4]
BIC R7, R7, R8
STRH R7, [R6, #4]
/**
* Switch the current running task to the next running task.
* (g_stLosTask.pstRunTask = g_stLosTask.pstNewTask)
*/
LDR R0, [R5, #4]
STR R0, [R5]
/**
* Set the RUNNING state of the next running task.
* (g_stLosTask.pstNewTask->usTaskStatus |= OS_TASK_STATUS_RUNNING)
*/
LDRH R7, [R0, #4]
ORR R7, R7, R8
STRH R7, [R0, #4]
/**
* Restore the stack pointer of the next running task from TCB.
* (R1 = g_stLosTask.pstNewTask->pStackPointer)
*/
LDR R1, [R0]
/**
* Restore the stack frame(R4-R11) of the next running task.
* R12 restore the PRIMASK value of the next running task.
* NOTE: After exiting the exception handler function, these registers
* (PC,xPSR,R0-R3,R12,LR) will be automatically
* restored by the CPU from the stack of the next running task.
*
* 1. The stack of the next running task is as follows:
*
* POP: Restore the context of the next running task ===>|
* High addr--->|
* ----------+-----------------------+--------------------------------------+-----
* | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
* ----------+-----------------------+--------------------------------------+-----
* |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
* R1 to PSP--->|
* |<--- cpu auto restoring --->|
* Stack pointer after exiting exception--->|
*
* 2. If the next running task is run for the first time, the stack is as follows:
*
* POP: Restore the context of the next running task ===>|
* High addr--->|
* Bottom of the stack--->|
* ----------+-----------------------+--------------------------------------+
* | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
* ----------+-----------------------+--------------------------------------+
* |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
* R1 to PSP--->|
* |<--- cpu auto restoring --->|
* Stack pointer after exiting exception--->|
*/
LDMFD R1!, {R4-R12} /* restore the core registers and PRIMASK. */
/**
* Set the stack pointer of the next running task to PSP.
*/
MSR PSP, R1
/**
* Restore the interruption state of the next running task.
*/
MSR PRIMASK, R12
BX LR
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m3/gcc/los_hw_exc_gcc.S
================================================
/*----------------------------------------------------------------------------
Copyright (c) <2013-2015>, <Huawei Technologies Co., Ltd>
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used
to endorse or promote products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE, DATA, OR PROFITS
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
----------------------------------------------------------------------------
Notice of Export Control Law
===============================================
Huawei LiteOS may be subject to applicable export control laws and regulations, which might
include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
applicable export control laws and regulations.
---------------------------------------------------------------------------*/
/*****************************************************************************************
CODE GENERATION DIRECTIVES
*****************************************************************************************/
.syntax unified
.arch armv7e-m
.thumb
.section .text
/*****************************************************************************************
EXPORT FUNCTIONS
*****************************************************************************************/
.global NMI_Handler
.global HardFault_Handler
.global MemManage_Handler
.global BusFault_Handler
.global UsageFault_Handler
.global SVC_Handler
.global UART4_IRQHandler
/*****************************************************************************************
EXTERN PARAMETERS
*****************************************************************************************/
.extern osExcHandleEntry
.extern g_uwExcTbl
.extern g_bTaskScheduled
/****************************************************************************************
*****************************************************************************************/
.equ OS_EXC_CAUSE_NMI, 18
.equ OS_EXC_CAUSE_HARDFAULT, 19
.equ OS_EXC_CAUSE_MEMFAULT, 20
.equ OS_EXC_CAUSE_BUSFAULT, 21
.equ OS_EXC_CAUSE_USAGEFAULT, 22
.equ OS_EXC_CAUSE_SVC, 23
.equ HF_DEBUGEVT, 24
.equ HF_VECTBL, 25
.equ FLAG_ADDR_VALID, 0x10000 /* bit 16 */
.equ FLAG_HWI_ACTIVE, 0x20000 /* bit 17 */
.equ FLAG_NO_FLOAT, 0x10000000 /* bit 28 */
.equ OS_NVIC_CFSR, 0xE000ED28 /* include BusFault/MemFault/UsageFault State Regeister */
.equ OS_NVIC_HFSR, 0xE000ED2C /* HardFault State Regeister */
.equ OS_NVIC_BFAR, 0xE000ED38
.equ OS_NVIC_MMFAR, 0xE000ED34
.equ OS_NVIC_ACT_BASE, 0xE000E300
.equ OS_NVIC_SHCSRS, 0xE000ED24
.equ OS_NVIC_SHCSR_MASK, 0xC00 /* SYSTICKACT and PENDSVACT */
/****************************************************************************************
Function:
VOID NMI_Handler(VOID)
Description:
NMI Handler.
*****************************************************************************************/
.type NMI_Handler, %function
NMI_Handler:
/*
* Before executing instruction 'B osExcDispatch', the value of R0 is as follows.
* < R0 >:
* +------------------------------------------------------+------------------------+
* | 31-8 | 7-0 |
* +------------------------------------------------------+------------------------+
* | --- | OS_EXC_CAUSE_NMI |
* +------------------------------------------------------+------------------------+
* < R1 >: invalid
*/
MOV R0, #OS_EXC_CAUSE_NMI
MOV R1, #0
B osExcDispatch
/****************************************************************************************
Function:
VOID HardFault_Handler(VOID)
Description:
HardFault Handler.
****************************************************************************************/
.type HardFault_Handler, %function
HardFault_Handler:
/**
* Check HardFault state register.
*
* HFSR:
* +----------+--------+--------+--------+-------+
* | 31 | 30 | 29 - 2 | 1 | 0 |
* +----------+--------+--------+--------+-------+
* | DEBUGEVT | FORCED | -- | VECTBL | -- |
* +----------+--------+--------+--------+-------+
*/
MOV R0, #OS_EXC_CAUSE_HARDFAULT
LDR R2, =OS_NVIC_HFSR
LDR R2, [R2]
/**
* Check whether HardFault are triggered by debugging events.
* Before executing instruction 'BNE osExcDispatch', the value of R0 is as follows.
* < R0 >:
* +----------------------------------------+-------------+------------------------+
* | 31-16 | 15-8 | 7-0 |
* +----------------------------------------+-------------+------------------------+
* | --- | HF_DEBUGEVT | OS_EXC_CAUSE_HARDFAULT |
* +----------------------------------------+-------------+------------------------+
* < R1 >: invalid
*/
MOV R1, #HF_DEBUGEVT
ORR R0, R0, R1, LSL #0x8
TST R2, #0x80000000
BNE osExcDispatch
/**
* Check whether HardFault is caused by the failure of the fetch vector.
* Before executing instruction 'BNE osExcDispatch', the value of R0 is as follows.
* < R0 >:
* +----------------------------------------+-------------+------------------------+
* | 31-16 | 15-8 | 7-0 |
* +----------------------------------------+-------------+------------------------+
* | --- | HF_VECTBL | OS_EXC_CAUSE_HARDFAULT |
* +----------------------------------------+-------------+------------------------+
* < R1 >: invalid
*/
AND R0, R0, #0x000000FF
MOV R1, #HF_VECTBL
ORR R0, R0, R1, LSL #0x8
TST R2, #0x00000002
BNE osExcDispatch
/**
* If it`s not DEBUGEVT and VECTBL, that is FORCED, then read the CFSR register to
* check BusFault, MemFault and UsageFault.
* R0: OS_EXC_CAUSE_HARDFAULT
*
* CFSR:
* +----------------+--------+--------+
* | 31-16 | 15-8 | 7-0 |
* +----------------+--------+--------+
* | UFSR | BFSR | MFSR |
* +----------------+--------+--------+
*/
AND R0, R0, #0x000000FF
LDR R2, =OS_NVIC_CFSR
LDR R2, [R2]
TST R2, #0x8000 /* BFSR->BFARVALID */
BNE _HFBusFault /* BusFault */
TST R2, #0x80 /* MFSR->MMARVALID */
BNE _HFMemFault /* MemFault */
/**
* BFARVALID and MMARVALID flag both invalid.
* R12: 0 --- The error address is invalid.
*/
MOV R12, #0
B osHFExcCommonBMU
/**
* BFARVALID flag valid, read BFAR register.
* R1 : BFAR value --- The address value of a bus error.
* R12: The error address is valid.
*/
_HFBusFault:
LDR R1, =OS_NVIC_BFAR
LDR R1, [R1]
MOV R12, #FLAG_ADDR_VALID
B osHFExcCommonBMU
/**
* MMARVALID flag valid, read MMFAR register.
* R1 : MMFAR value --- The address value of memory management error.
* R12: The error address is valid.
*/
_HFMemFault:
LDR R1, =OS_NVIC_MMFAR
LDR R1, [R1]
MOV R12, #FLAG_ADDR_VALID
/**
* osHFExcCommonBMU: --- Get specific error status from table g_uwExcTbl, stored in R0.
* Before executing instruction 'B osExcDispatch', the value of R0 is as follows.
* < R0 >:
* +-------------------+-----------------+------------------+------------------------+
* | 31-17 | 16 | 15-8 | 7-0 |
* +-------------------+-----------------+------------------+------------------------+
* | --- | FLAG_ADDR_VALID | Error state code | OS_EXC_CAUSE_HARDFAULT |
* | | or | in | |
* | | 0(invalid) | table g_uwExcTbl | |
* +-------------------+-----------------+------------------+------------------------+
* < R1 >: The value of BFAR or MMFAR if the bit16(FLAG_ADDR_VALID) of R0 is set to 1,
* else invalid.
*/
osHFExcCommonBMU:
CLZ R2, R2
LDR R3, =g_uwExcTbl
ADD R3, R3, R2
LDRB R2, [R3]
ORR R0, R0, R2, LSL #0x8
ORR R0, R0, R12
B osExcDispatch
/****************************************************************************************
Function:
VOID BusFault_Handler(VOID)
Description:
BusFault Handler.
****************************************************************************************/
.type BusFault_Handler, %function
BusFault_Handler:
LDR R0, =OS_NVIC_CFSR
LDR R0, [R0]
LDR R2, =OS_EXC_CAUSE_BUSFAULT
TST R0, #0x8000 /* BFSR->BFARVALID */
BEQ _ExcBusNoADDR
LDR R1, =OS_NVIC_BFAR
LDR R1, [R1] /* R1: The value of BFAR */
MOV R12, #FLAG_ADDR_VALID /* R12: BusFault addr valid */
AND R0, R0, #0x3F00 /* R0: Reserved the b13-b8 of the BFSR */
B osExcCommonBMU
_ExcBusNoADDR:
MOV R12, #0 /* R12: BusFault addr invalid */
AND R0, R0, #0x3F00 /* R0: Reserved the b13-b8 of the BFSR */
B osExcCommonBMU
/****************************************************************************************
Function:
VOID MemManage_Handler(VOID)
Description:
MemManage Handler.
****************************************************************************************/
.type MemManage_Handler, %function
MemManage_Handler:
LDR R0, =OS_NVIC_CFSR
LDR R0, [R0]
LDR R2, =OS_EXC_CAUSE_MEMFAULT
TST R0, #0x80 /* MFSR->MMARVALID
BEQ _ExcMemNoADDR
LDR R1, =OS_NVIC_MMFAR
LDR R1, [R1] /* R1: The value of MMFAR */
MOV R12, #FLAG_ADDR_VALID /* R12: MemFault addr valid */
AND R0, R0, #0x3B /* R0: Reserved the b5-b0 of the MFSR */
B osExcCommonBMU
_ExcMemNoADDR:
MOV R12, #0 /* R12: MemFault addr invalid */
AND R0, R0, #0x3B /* R0: Reserved the b5-b0 of the MFSR */
B osExcCommonBMU
/****************************************************************************************
Function:
VOID UsageFault_Handler(VOID)
Description:
UsageFault Handler.
****************************************************************************************/
.type UsageFault_Handler, %function
UsageFault_Handler:
LDR R0, =OS_NVIC_CFSR
LDR R0, [R0]
LDR R2, =OS_EXC_CAUSE_USAGEFAULT
LDR R1, =#0x030F
LSL R1, R1, #16
AND R0, R0, R1 /* R0: reserved UFSR */
MOV R12, #0 /* R12: Fault addr invalid */
/**
* osExcCommonBMU: BusFault_Handler,MemManage_Handler and UsageFault_Handler share.
* Get specific error status from table g_uwExcTbl, stored in R0.
* Before executing osExcDispatch, the value of R0 is as follows.
* < R0 >:
* +-------------------+-----------------+------------------+------------------------+
* | 31-17 | 16 | 15-8 | 7-0 |
* +-------------------+-----------------+------------------+------------------------+
* | --- | FLAG_ADDR_VALID | Error state code |OS_EXC_CAUSE_BUSFAULT or|
* | | or | in |OS_EXC_CAUSE_MEMFAULT or|
* | | 0(invalid) | table g_uwExcTbl |OS_EXC_CAUSE_USAGEFAULT |
* +-------------------+-----------------+------------------+------------------------+
* < R1 >: The value of BFAR or MMFAR if the bit16(FLAG_ADDR_VALID) of R0 is set to 1,
* else invalid.
*/
osExcCommonBMU:
CLZ R0, R0
LDR R3, =g_uwExcTbl
ADD R3, R3, R0
LDRB R0, [R3]
LSL R0, R0, #0x8
ORR R0, R0, R2
ORR R0, R0, R12
MRS R2,PSP /* PSP-->>37D8 */
/* ****************************************************************************************
osExcDispatch: NMI_Handler, HardFault_Handler, SVC_Handler, BusFault_Handler, MemManage_Handler,
UsageFault_Handler sharing.
****************************************************************************************/
/**
* When executing osExcDispatch, R0, R1 will be used.
* The possible values of R0 and R1 are as follows.
*
* < R0 >:
* +----------------+-----------------+---------------------+------------------------+
* | 31-17 | 16 | 15-8 | 7-0 |
* +----------------+-----------------+---------------------+------------------------+
* | | FLAG_ADDR_VALID | Error state code in | OS_EXC_CAUSE_HARDFAULT |
* | --- | or | table g_uwExcTbl |or OS_EXC_CAUSE_MEMFAULT|
* | | 0(invalid) | or HF_DEBUGEVT |or OS_EXC_CAUSE_BUSFAULT|
* | | | or HF_VECTBL |or OS_EXC_CAUSE_NMI or |
* | | | | OS_EXC_CAUSE_USAGEFAULT|
* +----------------+-----------------+---------------------+------------------------+
* b17: FLAG_HWI_ACTIVE
* b28: FLAG_NO_FLOAT
* NOTE: b17 and b28 will be set later.
*
* < R1 >:
* If the bit16 of R0 is 1, then R1 is the value of BFAR or MMFAR, otherwise the
* value in R1 is invalid.
*
*/
osExcDispatch:
LDR R2, =OS_NVIC_ACT_BASE
MOV R12, #8 /* #8: externel interrupt active check loop counter(#0 - #239) */
_hwiActiveCheck:
LDR R3, [R2] /* R3 store the value of externel interrupt active status */
CMP R3, #0
BEQ _hwiActiveCheckNext
/**
* Exception occured in external interrupt.
*/
ORR R0, R0, #FLAG_HWI_ACTIVE /* R0[b17] = 1, externel interrupt active valid &&&&&&&&&& */
RBIT R2, R3 /* bit reversal */
CLZ R2, R2
RSB R12, R12, #8 /* R12 = 8 - R12 */
ADD R2, R2, R12, LSL #5 /* R2: external interrupt number as uwPid */
/**
* Interrupts and initialization phase always use MSP.
*/
_ExcInMSP:
TST LR, #0x10 /* EXC_RETURN[b4] --- FPU(0) or without FPU(1) */
BNE _NoFloatInMsp
/**
* Before executing instruction 'B _handleEntry', MSP is as follows.
* MSP:
* High addr--->|
* +--------------------------------------------------------------------------------+---------
* | R4-R11,PRIMASK,SAVED_SP | R0-R3,R12,LR,PC,xPSR |
* +--------------------------------------------------------------------------------+---------
* R13--->| Initial R13--->|<--- #32 --->|<---SAVED_SP
* | (CPU auto saved) |
*
*/
_NoFloatInMsp:
ADD R3, R13, #32 /* #32: skip [R0-R3,R12,LR,PC,xPSR] */
PUSH {R3} /* push [SAVED_SP]: MSP+32 = Stack pointer in MSP before entering the exception */
MRS R12, PRIMASK
PUSH {R4-R12} /* push R4-R11,PRIMASK to MSP */
ORR R0, R0, #FLAG_NO_FLOAT /* R0[b28] = 1, no FPU &&&&&&&&&& */
B _handleEntry
_hwiActiveCheckNext:
ADD R2, R2, #4 /* next NVIC ACT ADDR */
SUBS R12, R12, #1
BNE _hwiActiveCheck
/**
* Not in externel interrupt, check whether it is SysTick or PendSV.
*/
LDR R2, =OS_NVIC_SHCSRS
LDRH R2,[R2]
LDR R3,=OS_NVIC_SHCSR_MASK
AND R2, R2, R3
CMP R2, #0
BNE _ExcInMSP /* SysTick or PendSV active */
/**
* Check whether an exception occurs during the initialization phase.
* If g_bTaskScheduled == 0, it is in the initialization phase.
*/
LDR R2, =g_bTaskScheduled
LDR R2, [R2]
TST R2, #1
BEQ _ExcInMSP /* initialization phase use MSP */
/**
* Before executing _handleEntry, MSP is as follows.
* MSP:
* High addr--->|
* +--------------------------------------------------------------------------------+---------
* | R4-R11,PRIMASK,TASK_SP | R0-R3,R12,LR,PC,xPSR |
* +--------------------------------------------------------------------------------+---------
* R13--->| |<--- #32 --->|<---Initial R13
* | (copied from PSP) |
* |<---R2(no use)
*
* NOTE: stack frame: R0-R3,R12,LR,PC,xPSR.
*/
_NoFloatInPsp:
MOV R2, R13
SUB R13, #32 /* #32: MSP reserved, used to store stack frame in PSP */
MRS R3, PSP
ADD R12, R3, #32 /* PSP+32 = Stack pointer of the task before entering the exception */
PUSH {R12} /* push task SP to MSP */
MRS R12, PRIMASK
PUSH {R4-R12} /* push R4-R11,PRIMASK of the current running task to MSP */
/* Copy stack frame from the stack of the current running task to MSP */
LDMFD R3, {R4-R11} /* restore stack frame of PSP to R4-R11 */
STMFD R2!, {R4-R11} /* save stack frame to MSP */
ORR R0, R0, #FLAG_NO_FLOAT /* R0[b28] = 1, no FPU &&&&&&&&&& */
/**
* _handleEntry: Call osExcHandleEntry
* param1: R0 --- b28: FLAG_NO_FLOAT.
* b17: FLAG_HWI_ACTIVE.
* b16: FLAG_ADDR_VALID.
* b15-b8: Error state code in table g_uwExcTbl or HF_DEBUGEVT or HF_VECTBL.
* b7-b0: OS_EXC_CAUSE_HARDFAULT or OS_EXC_CAUSE_NMI or OS_EXC_CAUSE_MEMFAULT
* or OS_EXC_CAUSE_BUSFAULT or OS_EXC_CAUSE_USAGEFAULT.
* param2: R1 --- The value of BFAR or MMFAR if R0[b16] = 1, otherwise invalid.
* param3: R2 --- external interrupt number(0-239) if R0[b17] = 1, otherwise invalid.
* param4: R3 --- Point to the top of the stack(R4 or S16) that the exception stack frame in MSP.
*/
_handleEntry:
MOV R3, R13
CPSID I
CPSID F
B osExcHandleEntry
NOP
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m3/iar/los_dispatch_iar.S
================================================
;----------------------------------------------------------------------------
; Copyright (c) <2016-2018>, <Huawei Technologies Co., Ltd>
; All rights reserved.
; Redistribution and use in source and binary forms, with or without modification,
; are permitted provided that the following conditions are met:
; 1. Redistributions of source code must retain the above copyright notice, this list of
; conditions and the following disclaimer.
; 2. Redistributions in binary form must reproduce the above copyright notice, this list
; of conditions and the following disclaimer in the documentation and/or other materials
; provided with the distribution.
; 3. Neither the name of the copyright holder nor the names of its contributors may be used
; to endorse or promote products derived from this software without specific prior written
; permission.
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;---------------------------------------------------------------------------*/
;----------------------------------------------------------------------------
; Notice of Export Control Law
; ===============================================
; Huawei LiteOS may be subject to applicable export control laws and regulations, which might
; include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
; Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
; applicable export control laws and regulations.
;---------------------------------------------------------------------------*/
;****************************************************************************************
; EXPORT FUNCTIONS
;****************************************************************************************
EXPORT LOS_IntLock
EXPORT LOS_IntUnLock
EXPORT LOS_IntRestore
EXPORT LOS_StartToRun
EXPORT osTaskSchedule
EXPORT PendSV_Handler
;****************************************************************************************
; EXTERN PARAMETERS
;****************************************************************************************
IMPORT g_stLosTask
IMPORT g_pfnTskSwitchHook
IMPORT g_bTaskScheduled
;****************************************************************************************
; EQU
;****************************************************************************************
OS_NVIC_INT_CTRL EQU 0xE000ED04 ; Interrupt Control and State Register.
OS_NVIC_PENDSVSET EQU 0x10000000 ; Value to trigger PendSV exception.
OS_NVIC_SYSPRI2 EQU 0xE000ED20 ; System Handler Priority Register 2.
OS_NVIC_PENDSV_SYSTICK_PRI EQU 0xFFFF0000 ; SysTick + PendSV priority level (lowest).
OS_TASK_STATUS_RUNNING EQU 0x0010 ; Task Status Flag (RUNNING).
;****************************************************************************************
; CODE GENERATION DIRECTIVES
;****************************************************************************************
SECTION .text:CODE(2)
THUMB
REQUIRE8
PRESERVE8
;****************************************************************************************
; Function:
; VOID LOS_StartToRun(VOID);
; Description:
; Start the first task, which is the highest priority task in the priority queue.
; Other tasks are started by task scheduling.
;****************************************************************************************
LOS_StartToRun
CPSID I
;/**
; * Set PendSV and SysTick prority to the lowest.
; * read ---> modify ---> write-back.
; */
LDR R0, =OS_NVIC_SYSPRI2
LDR R1, =OS_NVIC_PENDSV_SYSTICK_PRI
LDR R2, [R0]
ORR R1, R1, R2
STR R1, [R0]
;/**
; * Set g_bTaskScheduled = 1.
; */
LDR R0, =g_bTaskScheduled
MOV R1, #1
STR R1, [R0]
;/**
; * Set g_stLosTask.pstRunTask = g_stLosTask.pstNewTask.
; */
LDR R0, =g_stLosTask
LDR R1, [R0, #4]
STR R1, [R0]
;/**
; * Set g_stLosTask.pstRunTask->usTaskStatus |= OS_TASK_STATUS_RUNNING.
; */
LDR R1, [R0]
LDRH R2, [R1, #4]
MOV R3, #OS_TASK_STATUS_RUNNING
ORR R2, R2, R3
STRH R2, [R1, #4]
;/**
; * Restore the default stack frame(R0-R3,R12,LR,PC,xPSR) of g_stLosTask.pstRunTask to R0-R7.
; * Return by setting the CONTROL register.
; *
; * The initial stack of the current running task is as follows:
; *
; * POP: Restore the context of the current running task ===>|
; * High addr--->|
; * Bottom of the stack--->|
; * ----------+-----------------------+--------------------------------------+
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+
; * |<---Top of the stack, restored from g_stLosTask.pstRunTask->pStackPointer
; * |<--- skip --->|<--- copy to R0-R7 --->|
; * R12 to PSP--->|
; * Stack pointer after LOS_StartToRun--->|
; */
LDR R12, [R1]
ADD R12, R12, #36 ; skip R4-R11, PRIMASK.
LDMFD R12!, {R0-R7}
;/**
; * Set the stack pointer of g_stLosTask.pstRunTask to PSP.
; */
MSR PSP, R12
;/**
; * Set the CONTROL register, after schedule start, privilege level and stack = PSP.
; */
MOV R12, #2
MSR CONTROL, R12
;/**
; * Enable interrupt. (The default PRIMASK value is 0, so enable directly)
; */
MOV LR, R5
CPSIE I
;/**
; * Jump directly to the default PC of g_stLosTask.pstRunTask, the field information
; * of the main function will be destroyed and will never be returned.
; */
BX R6
;****************************************************************************************
; Function:
; UINTPTR LOS_IntLock(VOID);
; Description:
; Disable all interrupts except Reset,NMI and HardFault.
; The value of currnet interruption state will be returned to the caller to save.
;
; Function:
; VOID LOS_IntRestore(UINTPTR uvIntSave);
; Description:
; Restore the locked interruption of LOS_IntLock.
; The caller must pass in the value of interruption state previously saved.
;****************************************************************************************
LOS_IntLock
MRS R0, PRIMASK
CPSID I
BX LR
LOS_IntUnLock
MRS R0, PRIMASK
CPSIE I
BX LR
LOS_IntRestore
MSR PRIMASK, R0
BX LR
;****************************************************************************************
; Function:
; VOID osTaskSchedule(VOID);
; Description:
; Start the task swtich process by software trigger PendSV interrupt.
;****************************************************************************************
osTaskSchedule
LDR R0, =OS_NVIC_INT_CTRL
LDR R1, =OS_NVIC_PENDSVSET
STR R1, [R0]
BX LR
;****************************************************************************************
; Function:
; VOID PendSV_Handler(VOID);
; Description:
; PendSV interrupt handler, switch the context of the task.
; First: Save the context of the current running task(g_stLosTask.pstRunTask)
; to its own stack.
; Second: Restore the context of the next running task(g_stLosTask.pstNewTask)
; from its own stack.
;****************************************************************************************
PendSV_Handler
;/**
; * R12: Save the interruption state of the current running task.
; * Disable all interrupts except Reset,NMI and HardFault
; */
MRS R12, PRIMASK
CPSID I
;/**
; * Call task switch hook.
; */
LDR R2, =g_pfnTskSwitchHook
LDR R2, [R2]
CBZ R2, TaskSwitch
PUSH {R12, LR}
BLX R2
POP {R12, LR}
TaskSwitch
;/**
; * R0 = now stack pointer of the current running task.
; */
MRS R0, PSP
;/**
; * Save the stack frame(R4-R11) of the current running task.
; * R12 save the PRIMASK value of the current running task.
; * NOTE: Before entering the exception handler function, these registers
; * (xPSR,PC,LR,R12,R3-R0) have been automatically
; * saved by the CPU in the stack of the current running task.
; *
; * The stack of the current running task is as follows:
; *
; * |<=== PUSH: Save the context of the current running task
; * | High addr--->|
; * ----------+-----------------------+--------------------------------------+-----
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+-----
; * Stack pointer before entering exception--->|
; * |<--- cpu auto saved --->|
; * |<---PSP to R0
; * |<---Top of the stack, save to g_stLosTask.pstRunTask->pStackPointer
; */
STMFD R0!, {R4-R12} ; save the core registers and PRIMASK.
;/**
; * R5,R8.
; */
LDR R5, =g_stLosTask
MOV R8, #OS_TASK_STATUS_RUNNING
;/**
; * Save the stack pointer of the current running task to TCB.
; * (g_stLosTask.pstRunTask->pStackPointer = R0)
; */
LDR R6, [R5]
STR R0, [R6]
;/**
; * Clear the RUNNING state of the current running task.
; * (g_stLosTask.pstRunTask->usTaskStatus &= ~OS_TASK_STATUS_RUNNING)
; */
LDRH R7, [R6, #4]
BIC R7, R7, R8
STRH R7, [R6, #4]
;/**
; * Switch the current running task to the next running task.
; * (g_stLosTask.pstRunTask = g_stLosTask.pstNewTask)
; */
LDR R0, [R5, #4]
STR R0, [R5]
;/**
; * Set the RUNNING state of the next running task.
; * (g_stLosTask.pstNewTask->usTaskStatus |= OS_TASK_STATUS_RUNNING)
; */
LDRH R7, [R0, #4]
ORR R7, R7, R8
STRH R7, [R0, #4]
;/**
; * Restore the stack pointer of the next running task from TCB.
; * (R1 = g_stLosTask.pstNewTask->pStackPointer)
; */
LDR R1, [R0]
;/**
; * Restore the stack frame(R4-R11) of the next running task.
; * R12 restore the PRIMASK value of the next running task.
; * NOTE: After exiting the exception handler function, these registers
; * (PC,xPSR,R0-R3,R12,LR) will be automatically
; * restored by the CPU from the stack of the next running task.
; *
; * 1. The stack of the next running task is as follows:
; *
; * POP: Restore the context of the next running task ===>|
; * High addr--->|
; * ----------+-----------------------+--------------------------------------+-----
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+-----
; * |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
; * R1 to PSP--->|
; * |<--- cpu auto restoring --->|
; * Stack pointer after exiting exception--->|
; *
; * 2. If the next running task is run for the first time, the stack is as follows:
; *
; * POP: Restore the context of the next running task ===>|
; * High addr--->|
; * Bottom of the stack--->|
; * ----------+-----------------------+--------------------------------------+
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+
; * |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
; * R1 to PSP--->|
; * |<--- cpu auto restoring --->|
; * Stack pointer after exiting exception--->|
; */
LDMFD R1!, {R4-R12} ; restore the core registers and PRIMASK.
;/**
; * Set the stack pointer of the next running task to PSP.
; */
MSR PSP, R1
;/**
; * Restore the interruption state of the next running task.
; */
MSR PRIMASK, R12
BX LR
END
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m3/keil/los_dispatch_keil.S
================================================
;----------------------------------------------------------------------------
; Copyright (c) <2016-2018>, <Huawei Technologies Co., Ltd>
; All rights reserved.
; Redistribution and use in source and binary forms, with or without modification,
; are permitted provided that the following conditions are met:
; 1. Redistributions of source code must retain the above copyright notice, this list of
; conditions and the following disclaimer.
; 2. Redistributions in binary form must reproduce the above copyright notice, this list
; of conditions and the following disclaimer in the documentation and/or other materials
; provided with the distribution.
; 3. Neither the name of the copyright holder nor the names of its contributors may be used
; to endorse or promote products derived from this software without specific prior written
; permission.
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;---------------------------------------------------------------------------*/
;----------------------------------------------------------------------------
; Notice of Export Control Law
; ===============================================
; Huawei LiteOS may be subject to applicable export control laws and regulations, which might
; include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
; Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
; applicable export control laws and regulations.
;---------------------------------------------------------------------------*/
;****************************************************************************************
; EXPORT FUNCTIONS
;****************************************************************************************
EXPORT LOS_IntLock
EXPORT LOS_IntUnLock
EXPORT LOS_IntRestore
EXPORT LOS_StartToRun
EXPORT osTaskSchedule
EXPORT PendSV_Handler
;****************************************************************************************
; EXTERN PARAMETERS
;****************************************************************************************
IMPORT g_stLosTask
IMPORT g_pfnTskSwitchHook
IMPORT g_bTaskScheduled
;****************************************************************************************
; EQU
;****************************************************************************************
OS_NVIC_INT_CTRL EQU 0xE000ED04 ; Interrupt Control and State Register.
OS_NVIC_PENDSVSET EQU 0x10000000 ; Value to trigger PendSV exception.
OS_NVIC_SYSPRI2 EQU 0xE000ED20 ; System Handler Priority Register 2.
OS_NVIC_PENDSV_SYSTICK_PRI EQU 0xFFFF0000 ; SysTick + PendSV priority level (lowest).
OS_TASK_STATUS_RUNNING EQU 0x0010 ; Task Status Flag (RUNNING).
;****************************************************************************************
; CODE GENERATION DIRECTIVES
;****************************************************************************************
AREA |.text|, CODE, READONLY
THUMB
REQUIRE8
PRESERVE8
;****************************************************************************************
; Function:
; VOID LOS_StartToRun(VOID);
; Description:
; Start the first task, which is the highest priority task in the priority queue.
; Other tasks are started by task scheduling.
;****************************************************************************************
LOS_StartToRun
CPSID I
;/**
; * Set PendSV and SysTick prority to the lowest.
; * read ---> modify ---> write-back.
; */
LDR R0, =OS_NVIC_SYSPRI2
LDR R1, =OS_NVIC_PENDSV_SYSTICK_PRI
LDR R2, [R0]
ORR R1, R1, R2
STR R1, [R0]
;/**
; * Set g_bTaskScheduled = 1.
; */
LDR R0, =g_bTaskScheduled
MOV R1, #1
STR R1, [R0]
;/**
; * Set g_stLosTask.pstRunTask = g_stLosTask.pstNewTask.
; */
LDR R0, =g_stLosTask
LDR R1, [R0, #4]
STR R1, [R0]
;/**
; * Set g_stLosTask.pstRunTask->usTaskStatus |= OS_TASK_STATUS_RUNNING.
; */
LDR R1, [R0]
LDRH R2, [R1, #4]
MOV R3, #OS_TASK_STATUS_RUNNING
ORR R2, R2, R3
STRH R2, [R1, #4]
;/**
; * Restore the default stack frame(R0-R3,R12,LR,PC,xPSR) of g_stLosTask.pstRunTask to R0-R7.
; * Return by setting the CONTROL register.
; *
; * The initial stack of the current running task is as follows:
; *
; * POP: Restore the context of the current running task ===>|
; * High addr--->|
; * Bottom of the stack--->|
; * ----------+-----------------------+--------------------------------------+
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+
; * |<---Top of the stack, restored from g_stLosTask.pstRunTask->pStackPointer
; * |<--- skip --->|<--- copy to R0-R7 --->|
; * R12 to PSP--->|
; * Stack pointer after LOS_StartToRun--->|
; */
LDR R12, [R1]
ADD R12, R12, #36 ; skip R4-R11, PRIMASK.
LDMFD R12!, {R0-R7}
;/**
; * Set the stack pointer of g_stLosTask.pstRunTask to PSP.
; */
MSR PSP, R12
;/**
; * Set the CONTROL register, after schedule start, privilege level and stack = PSP.
; */
MOV R12, #2
MSR CONTROL, R12
;/**
; * Enable interrupt. (The default PRIMASK value is 0, so enable directly)
; */
MOV LR, R5
CPSIE I
;/**
; * Jump directly to the default PC of g_stLosTask.pstRunTask, the field information
; * of the main function will be destroyed and will never be returned.
; */
BX R6
;****************************************************************************************
; Function:
; UINTPTR LOS_IntLock(VOID);
; Description:
; Disable all interrupts except Reset,NMI and HardFault.
; The value of currnet interruption state will be returned to the caller to save.
;
; Function:
; VOID LOS_IntRestore(UINTPTR uvIntSave);
; Description:
; Restore the locked interruption of LOS_IntLock.
; The caller must pass in the value of interruption state previously saved.
;****************************************************************************************
LOS_IntLock
MRS R0, PRIMASK
CPSID I
BX LR
LOS_IntUnLock
MRS R0, PRIMASK
CPSIE I
BX LR
LOS_IntRestore
MSR PRIMASK, R0
BX LR
;****************************************************************************************
; Function:
; VOID osTaskSchedule(VOID);
; Description:
; Start the task swtich process by software trigger PendSV interrupt.
;****************************************************************************************
osTaskSchedule
LDR R0, =OS_NVIC_INT_CTRL
LDR R1, =OS_NVIC_PENDSVSET
STR R1, [R0]
BX LR
;****************************************************************************************
; Function:
; VOID PendSV_Handler(VOID);
; Description:
; PendSV interrupt handler, switch the context of the task.
; First: Save the context of the current running task(g_stLosTask.pstRunTask)
; to its own stack.
; Second: Restore the context of the next running task(g_stLosTask.pstNewTask)
; from its own stack.
;****************************************************************************************
PendSV_Handler
;/**
; * R12: Save the interruption state of the current running task.
; * Disable all interrupts except Reset,NMI and HardFault
; */
MRS R12, PRIMASK
CPSID I
;/**
; * Call task switch hook.
; */
LDR R2, =g_pfnTskSwitchHook
LDR R2, [R2]
CBZ R2, TaskSwitch
PUSH {R12, LR}
BLX R2
POP {R12, LR}
TaskSwitch
;/**
; * R0 = now stack pointer of the current running task.
; */
MRS R0, PSP
;/**
; * Save the stack frame(R4-R11) of the current running task.
; * R12 save the PRIMASK value of the current running task.
; * NOTE: Before entering the exception handler function, these registers
; * (xPSR,PC,LR,R12,R3-R0) have been automatically
; * saved by the CPU in the stack of the current running task.
; *
; * The stack of the current running task is as follows:
; *
; * |<=== PUSH: Save the context of the current running task
; * | High addr--->|
; * ----------+-----------------------+--------------------------------------+-----
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+-----
; * Stack pointer before entering exception--->|
; * |<--- cpu auto saved --->|
; * |<---PSP to R0
; * |<---Top of the stack, save to g_stLosTask.pstRunTask->pStackPointer
; */
STMFD R0!, {R4-R12} ; save the core registers and PRIMASK.
;/**
; * R5,R8.
; */
LDR R5, =g_stLosTask
MOV R8, #OS_TASK_STATUS_RUNNING
;/**
; * Save the stack pointer of the current running task to TCB.
; * (g_stLosTask.pstRunTask->pStackPointer = R0)
; */
LDR R6, [R5]
STR R0, [R6]
;/**
; * Clear the RUNNING state of the current running task.
; * (g_stLosTask.pstRunTask->usTaskStatus &= ~OS_TASK_STATUS_RUNNING)
; */
LDRH R7, [R6, #4]
BIC R7, R7, R8
STRH R7, [R6, #4]
;/**
; * Switch the current running task to the next running task.
; * (g_stLosTask.pstRunTask = g_stLosTask.pstNewTask)
; */
LDR R0, [R5, #4]
STR R0, [R5]
;/**
; * Set the RUNNING state of the next running task.
; * (g_stLosTask.pstNewTask->usTaskStatus |= OS_TASK_STATUS_RUNNING)
; */
LDRH R7, [R0, #4]
ORR R7, R7, R8
STRH R7, [R0, #4]
;/**
; * Restore the stack pointer of the next running task from TCB.
; * (R1 = g_stLosTask.pstNewTask->pStackPointer)
; */
LDR R1, [R0]
;/**
; * Restore the stack frame(R4-R11) of the next running task.
; * R12 restore the PRIMASK value of the next running task.
; * NOTE: After exiting the exception handler function, these registers
; * (PC,xPSR,R0-R3,R12,LR) will be automatically
; * restored by the CPU from the stack of the next running task.
; *
; * 1. The stack of the next running task is as follows:
; *
; * POP: Restore the context of the next running task ===>|
; * High addr--->|
; * ----------+-----------------------+--------------------------------------+-----
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+-----
; * |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
; * R1 to PSP--->|
; * |<--- cpu auto restoring --->|
; * Stack pointer after exiting exception--->|
; *
; * 2. If the next running task is run for the first time, the stack is as follows:
; *
; * POP: Restore the context of the next running task ===>|
; * High addr--->|
; * Bottom of the stack--->|
; * ----------+-----------------------+--------------------------------------+
; * | R4-R11, PRIMASK | R0-R3, R12, LR, PC, xPSR |
; * ----------+-----------------------+--------------------------------------+
; * |<---Top of the stack, restored from g_stLosTask.pstNewTask->pStackPointer
; * R1 to PSP--->|
; * |<--- cpu auto restoring --->|
; * Stack pointer after exiting exception--->|
; */
LDMFD R1!, {R4-R12} ; restore the core registers and PRIMASK.
;/**
; * Set the stack pointer of the next running task to PSP.
; */
MSR PSP, R1
;/**
; * Restore the interruption state of the next running task.
; */
MSR PRIMASK, R12
BX LR
ALIGN
END
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m3/keil/los_hw_exc_keil.S
================================================
;----------------------------------------------------------------------------
; Copyright (c) <2013-2015>, <Huawei Technologies Co., Ltd>
; All rights reserved.
; Redistribution and use in source and binary forms, with or without modification,
; are permitted provided that the following conditions are met:
; 1. Redistributions of source code must retain the above copyright notice, this list of
; conditions and the following disclaimer.
; 2. Redistributions in binary form must reproduce the above copyright notice, this list
; of conditions and the following disclaimer in the documentation and/or other materials
; provided with the distribution.
; 3. Neither the name of the copyright holder nor the names of its contributors may be used
; to endorse or promote products derived from this software without specific prior written
; permission.
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;---------------------------------------------------------------------------*/
;----------------------------------------------------------------------------
; Notice of Export Control Law
; ===============================================
; Huawei LiteOS may be subject to applicable export control laws and regulations, which might
; include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
; Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
; applicable export control laws and regulations.
;---------------------------------------------------------------------------*/
;****************************************************************************************
; CODE GENERATION DIRECTIVES
;****************************************************************************************
PRESERVE8
AREA |.text|, CODE, READONLY
THUMB
;****************************************************************************************
; EXPORT FUNCTIONS
;****************************************************************************************
EXPORT NMI_Handler
EXPORT HardFault_Handler
EXPORT MemManage_Handler
EXPORT BusFault_Handler
EXPORT UsageFault_Handler
EXPORT SVC_Handler
;****************************************************************************************
; EXTERN PARAMETERS
;****************************************************************************************
IMPORT osExcHandleEntry
IMPORT g_uwExcTbl
IMPORT g_bTaskScheduled
;****************************************************************************************
; EQU
;****************************************************************************************
OS_EXC_CAUSE_NMI EQU 18
OS_EXC_CAUSE_HARDFAULT EQU 19
OS_EXC_CAUSE_MEMFAULT EQU 20
OS_EXC_CAUSE_BUSFAULT EQU 21
OS_EXC_CAUSE_USAGEFAULT EQU 22
OS_EXC_CAUSE_SVC EQU 23
HF_DEBUGEVT EQU 24
HF_VECTBL EQU 25
FLAG_ADDR_VALID EQU 0x10000 ; bit 16
FLAG_HWI_ACTIVE EQU 0x20000 ; bit 17
FLAG_NO_FLOAT EQU 0x10000000 ; bit 28
OS_NVIC_CFSR EQU 0xE000ED28 ; include BusFault/MemFault/UsageFault State Regeister
OS_NVIC_HFSR EQU 0xE000ED2C ; HardFault State Regeister
OS_NVIC_BFAR EQU 0xE000ED38
OS_NVIC_MMFAR EQU 0xE000ED34
OS_NVIC_ACT_BASE EQU 0xE000E300
OS_NVIC_SHCSRS EQU 0xE000ED24
OS_NVIC_SHCSR_MASK EQU 0xC00 ; SYSTICKACT and PENDSVACT
;****************************************************************************************
; Function:
; VOID NMI_Handler(VOID);
; Description:
; NMI Handler.
;****************************************************************************************
NMI_Handler
;/**
; * Before executing instruction 'B osExcDispatch', the value of R0 is as follows.
; * < R0 >:
; * +------------------------------------------------------+------------------------+
; * | 31-8 | 7-0 |
; * +------------------------------------------------------+------------------------+
; * | --- | OS_EXC_CAUSE_NMI |
; * +------------------------------------------------------+------------------------+
; * < R1 >: invalid
; */
MOV R0, #OS_EXC_CAUSE_NMI
MOV R1, #0
B osExcDispatch
;****************************************************************************************
; Function:
; VOID HardFault_Handler(VOID);
; Description:
; HardFault Handler.
;****************************************************************************************
HardFault_Handler
;/**
; * Check HardFault state register.
; *
; * HFSR:
; * +----------+--------+--------+--------+-------+
; * | 31 | 30 | 29 - 2 | 1 | 0 |
; * +----------+--------+--------+--------+-------+
; * | DEBUGEVT | FORCED | -- | VECTBL | -- |
; * +----------+--------+--------+--------+-------+
; */
MOV R0, #OS_EXC_CAUSE_HARDFAULT
LDR R2, =OS_NVIC_HFSR
LDR R2, [R2]
;/**
; * Check whether HardFault are triggered by debugging events.
; * Before executing instruction 'BNE osExcDispatch', the value of R0 is as follows.
; * < R0 >:
; * +----------------------------------------+-------------+------------------------+
; * | 31-16 | 15-8 | 7-0 |
; * +----------------------------------------+-------------+------------------------+
; * | --- | HF_DEBUGEVT | OS_EXC_CAUSE_HARDFAULT |
; * +----------------------------------------+-------------+------------------------+
; * < R1 >: invalid
; */
MOV R1, #HF_DEBUGEVT
ORR R0, R0, R1, LSL #0x8
TST R2, #0x80000000
BNE osExcDispatch ; DEBUGEVT
;/**
; * Check whether HardFault is caused by the failure of the fetch vector.
; * Before executing instruction 'BNE osExcDispatch', the value of R0 is as follows.
; * < R0 >:
; * +----------------------------------------+-------------+------------------------+
; * | 31-16 | 15-8 | 7-0 |
; * +----------------------------------------+-------------+------------------------+
; * | --- | HF_VECTBL | OS_EXC_CAUSE_HARDFAULT |
; * +----------------------------------------+-------------+------------------------+
; * < R1 >: invalid
; */
AND R0, R0, #0x000000FF
MOV R1, #HF_VECTBL
ORR R0, R0, R1, LSL #0x8
TST R2, #0x00000002
BNE osExcDispatch ; VECTBL
;/**
; * If it`s not DEBUGEVT and VECTBL, that is FORCED, then read the CFSR register to
; * check BusFault, MemFault and UsageFault.
; * R0: OS_EXC_CAUSE_HARDFAULT
; *
; * CFSR:
; * +----------------+--------+--------+
; * | 31-16 | 15-8 | 7-0 |
; * +----------------+--------+--------+
; * | UFSR | BFSR | MFSR |
; * +----------------+--------+--------+
; */
AND R0, R0, #0x000000FF
LDR R2, =OS_NVIC_CFSR
LDR R2, [R2]
TST R2, #0x8000 ; BFSR->BFARVALID
BNE _HFBusFault ; BusFault
TST R2, #0x80 ; MFSR->MMARVALID
BNE _HFMemFault ; MemFault
;/**
; * BFARVALID and MMARVALID flag both invalid.
; * R12: 0 --- The error address is invalid.
; */
MOV R12, #0
B osHFExcCommonBMU
;/**
; * BFARVALID flag valid, read BFAR register.
; * R1 : BFAR value --- The address value of a bus error.
; * R12: The error address is valid.
; */
_HFBusFault
LDR R1, =OS_NVIC_BFAR
LDR R1, [R1]
MOV R12, #FLAG_ADDR_VALID
B osHFExcCommonBMU
;/**
; * MMARVALID flag valid, read MMFAR register.
; * R1 : MMFAR value --- The address value of memory management error.
; * R12: The error address is valid.
; */
_HFMemFault
LDR R1, =OS_NVIC_MMFAR
LDR R1, [R1]
MOV R12, #FLAG_ADDR_VALID
;/**
; * osHFExcCommonBMU: --- Get specific error status from table g_uwExcTbl, stored in R0.
; * Before executing instruction 'B osExcDispatch', the value of R0 is as follows.
; * < R0 >:
; * +-------------------+-----------------+------------------+------------------------+
; * | 31-17 | 16 | 15-8 | 7-0 |
; * +-------------------+-----------------+------------------+------------------------+
; * | --- | FLAG_ADDR_VALID | Error state code | OS_EXC_CAUSE_HARDFAULT |
; * | | or | in | |
; * | | 0(invalid) | table g_uwExcTbl | |
; * +-------------------+-----------------+------------------+------------------------+
; * < R1 >: The value of BFAR or MMFAR if the bit16(FLAG_ADDR_VALID) of R0 is set to 1,
; * else invalid.
; */
osHFExcCommonBMU
CLZ R2, R2
LDR R3, =g_uwExcTbl
ADD R3, R3, R2
LDRB R2, [R3]
ORR R0, R0, R2, LSL #0x8
ORR R0, R0, R12
B osExcDispatch
;****************************************************************************************
; Function:
; VOID SVC_Handler(VOID);
; Description:
; SVC Handler.
;****************************************************************************************
SVC_Handler
TST LR, #0x4 ; EXC_RETURN[b2] --- PSP or MSP
ITE EQ
MRSEQ R0, MSP
MRSNE R0, PSP
LDR R1, [R0, #24] ; The PC value in the stack frame
LDRB R0, [R1, #-2] ; R0: The number of SVC (0 - 255)
MOV R1, #0
;B osExcDispatch
_SvcLoop
B _SvcLoop
;****************************************************************************************
; Function:
; VOID BusFault_Handler(VOID);
; Description:
; BusFault Handler.
;****************************************************************************************
BusFault_Handler
LDR R0, =OS_NVIC_CFSR
LDR R0, [R0]
LDR R2, =OS_EXC_CAUSE_BUSFAULT
TST R0, #0x8000 ; BFSR->BFARVALID
BEQ _ExcBusNoADDR
LDR R1, =OS_NVIC_BFAR
LDR R1, [R1] ; R1: The value of BFAR
MOV R12, #FLAG_ADDR_VALID ; R12: BusFault addr valid
AND R0, R0, #0x3F00 ; R0: Reserved the b13-b8 of the BFSR
B osExcCommonBMU
_ExcBusNoADDR
MOV R12, #0 ; R12: BusFault addr invalid
AND R0, R0, #0x3F00 ; R0: Reserved the b13-b8 of the BFSR
B osExcCommonBMU
;****************************************************************************************
; Function:
; VOID MemManage_Handler(VOID);
; Description:
; MemManage Handler.
;****************************************************************************************
MemManage_Handler
LDR R0, =OS_NVIC_CFSR
LDR R0, [R0]
LDR R2, =OS_EXC_CAUSE_MEMFAULT
TST R0, #0x80 ; MFSR->MMARVALID
BEQ _ExcMemNoADDR
LDR R1, =OS_NVIC_MMFAR
LDR R1, [R1] ; R1: The value of MMFAR
MOV R12, #FLAG_ADDR_VALID ; R12: MemFault addr valid
AND R0, R0, #0x3B ; R0: Reserved the b5-b0 of the MFSR
B osExcCommonBMU
_ExcMemNoADDR
MOV R12, #0 ; R12: MemFault addr invalid
AND R0, R0, #0x3B ; R0: Reserved the b5-b0 of the MFSR
B osExcCommonBMU
;****************************************************************************************
; Function:
; VOID UsageFault_Handler(VOID);
; Description:
; UsageFault Handler.
;****************************************************************************************
UsageFault_Handler
LDR R0, =OS_NVIC_CFSR
LDR R0, [R0]
LDR R2, =OS_EXC_CAUSE_USAGEFAULT
MOV R1, #0x030F
LSL R1, R1, #16
AND R0, R0, R1 ; R0: reserved UFSR
MOV R12, #0 ; R12: Fault addr invalid
;/**
; * osExcCommonBMU: BusFault_Handler,MemManage_Handler and UsageFault_Handler share.
; * Get specific error status from table g_uwExcTbl, stored in R0.
; * Before executing osExcDispatch, the value of R0 is as follows.
; * < R0 >:
; * +-------------------+-----------------+------------------+------------------------+
; * | 31-17 | 16 | 15-8 | 7-0 |
; * +-------------------+-----------------+------------------+------------------------+
; * | --- | FLAG_ADDR_VALID | Error state code |OS_EXC_CAUSE_BUSFAULT or|
; * | | or | in |OS_EXC_CAUSE_MEMFAULT or|
; * | | 0(invalid) | table g_uwExcTbl |OS_EXC_CAUSE_USAGEFAULT |
; * +-------------------+-----------------+------------------+------------------------+
; * < R1 >: The value of BFAR or MMFAR if the bit16(FLAG_ADDR_VALID) of R0 is set to 1,
; * else invalid.
; */
osExcCommonBMU
CLZ R0, R0
LDR R3, =g_uwExcTbl
ADD R3, R3, R0
LDRB R0, [R3]
LSL R0, R0, #0x8
ORR R0, R0, R2
ORR R0, R0, R12
;MRS R2,PSP ;PSP-->>37D8
;****************************************************************************************
; osExcDispatch: NMI_Handler, HardFault_Handler, SVC_Handler, BusFault_Handler, MemManage_Handler,
; UsageFault_Handler sharing.
;****************************************************************************************
;/**
; * When executing osExcDispatch, R0, R1 will be used.
; * The possible values of R0 and R1 are as follows.
; *
; * < R0 >:
; * +----------------+-----------------+---------------------+------------------------+
; * | 31-17 | 16 | 15-8 | 7-0 |
; * +----------------+-----------------+---------------------+------------------------+
; * | | FLAG_ADDR_VALID | Error state code in | OS_EXC_CAUSE_HARDFAULT |
; * | --- | or | table g_uwExcTbl |or OS_EXC_CAUSE_MEMFAULT|
; * | | 0(invalid) | or HF_DEBUGEVT |or OS_EXC_CAUSE_BUSFAULT|
; * | | | or HF_VECTBL |or OS_EXC_CAUSE_NMI or |
; * | | | | OS_EXC_CAUSE_USAGEFAULT|
; * +----------------+-----------------+---------------------+------------------------+
; * b17: FLAG_HWI_ACTIVE
; * b28: FLAG_NO_FLOAT
; * NOTE: b17 and b28 will be set later.
; *
; * < R1 >:
; * If the bit16 of R0 is 1, then R1 is the value of BFAR or MMFAR, otherwise the
; * value in R1 is invalid.
; *
; */
osExcDispatch
LDR R2, =OS_NVIC_ACT_BASE
MOV R12, #8 ; #8: externel interrupt active check loop counter(#0 - #239)
_hwiActiveCheck
LDR R3, [R2] ; R3 store the value of externel interrupt active status
CMP R3, #0
BEQ _hwiActiveCheckNext
;/**
; * Exception occured in external interrupt.
; */
ORR R0, R0, #FLAG_HWI_ACTIVE ; R0[b17] = 1, externel interrupt active valid &&&&&&&&&&
RBIT R2, R3 ; bit reversal
CLZ R2, R2
RSB R12, R12, #8 ; R12 = 8 - R12
ADD R2, R2, R12, LSL #5 ; R2: external interrupt number as uwPid
;/**
; * Interrupts and initialization phase always use MSP.
; */
_ExcInMSP
;TST LR, #0x10 ; EXC_RETURN[b4] --- FPU(0) or without FPU(1)
;BNE _NoFloatInMsp
;/**
; * Before executing instruction 'B _handleEntry', MSP is as follows.
; * MSP:
; * High addr--->|
; * +--------------------------------------------------------------------------------+---------
; * | R4-R11,PRIMASK,SAVED_SP | R0-R3,R12,LR,PC,xPSR |
; * +--------------------------------------------------------------------------------+---------
; * R13--->| Initial R13--->|<--- #32 --->|<---SAVED_SP
; * | (CPU auto saved) |
; *
; */
_NoFloatInMsp
ADD R3, R13, #32 ; #32: skip [R0-R3,R12,LR,PC,xPSR]
PUSH {R3} ; push [SAVED_SP]: MSP+32 = Stack pointer in MSP before entering the exception
MRS R12, PRIMASK
PUSH {R4-R12} ; push R4-R11,PRIMASK to MSP
ORR R0, R0, #FLAG_NO_FLOAT ; R0[b28] = 1, no FPU &&&&&&&&&&
B _handleEntry
_hwiActiveCheckNext
ADD R2, R2, #4 ; next NVIC ACT ADDR
SUBS R12, R12, #1
BNE _hwiActiveCheck
;/**
; * Not in externel interrupt, check whether it is SysTick or PendSV.
; */
LDR R2, =OS_NVIC_SHCSRS
LDRH R2,[R2]
LDR R3,=OS_NVIC_SHCSR_MASK
AND R2, R2, R3
CMP R2, #0
BNE _ExcInMSP ; SysTick or PendSV active
;/**
; * Check whether an exception occurs during the initialization phase.
; * If g_bTaskScheduled == 0, it is in the initialization phase.
; */
LDR R2, =g_bTaskScheduled
LDR R2, [R2]
TST R2, #1
BEQ _ExcInMSP ; initialization phase use MSP
;/**
; * Before executing _handleEntry, MSP is as follows.
; * MSP:
; * High addr--->|
; * +--------------------------------------------------------------------------------+---------
; * | R4-R11,PRIMASK,TASK_SP | R0-R3,R12,LR,PC,xPSR |
; * +--------------------------------------------------------------------------------+---------
; * R13--->| |<--- #32 --->|<---Initial R13
; * | (copied from PSP) |
; * |<---R2(no use)
; *
; * NOTE: stack frame: R0-R3,R12,LR,PC,xPSR.
; */
_NoFloatInPsp
MOV R2, R13
SUB R13, #32 ; #32: MSP reserved, used to store stack frame in PSP
MRS R3, PSP
ADD R12, R3, #32 ; PSP+32 = Stack pointer of the task before entering the exception
PUSH {R12} ; push task SP to MSP
MRS R12, PRIMASK
PUSH {R4-R12} ; push R4-R11,PRIMASK of the current running task to MSP
;/* Copy stack frame from the stack of the current running task to MSP */
LDMFD R3, {R4-R11} ; restore stack frame of PSP to R4-R11
STMFD R2!, {R4-R11} ; save stack frame to MSP
ORR R0, R0, #FLAG_NO_FLOAT ; R0[b28] = 1, no FPU &&&&&&&&&&
;/**
; * _handleEntry: Call osExcHandleEntry
; * param1: R0 --- b28: FLAG_NO_FLOAT.
; * b17: FLAG_HWI_ACTIVE.
; * b16: FLAG_ADDR_VALID.
; * b15-b8: Error state code in table g_uwExcTbl or HF_DEBUGEVT or HF_VECTBL.
; * b7-b0: OS_EXC_CAUSE_HARDFAULT or OS_EXC_CAUSE_NMI or OS_EXC_CAUSE_MEMFAULT
; * or OS_EXC_CAUSE_BUSFAULT or OS_EXC_CAUSE_USAGEFAULT.
; * param2: R1 --- The value of BFAR or MMFAR if R0[b16] = 1, otherwise invalid.
; * param3: R2 --- external interrupt number(0-239) if R0[b17] = 1, otherwise invalid.
; * param4: R3 --- Point to the top of the stack(R4 or S16) that the exception stack frame in MSP.
; */
_handleEntry
MOV R3, R13
CPSID I
CPSID F
B osExcHandleEntry
NOP
ALIGN
END
================================================
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m3/los_exc.c
================================================
/*----------------------------------------------------------------------------
* Copyright (c) <2013-2015>, <Huawei Technologies Co., Ltd>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*---------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
* Notice of Export Control Law
* ===============================================
* Huawei LiteOS may be subject to applicable export control laws and regulations, which might
* include those applicable to Huawei LiteOS of U.S. and the country in which you are located.
* Import, export and usage of Huawei LiteOS in any manner by you shall be in compliance with such
* applicable export control laws and regulations.
*---------------------------------------------------------------------------*/
#include "los_exc.inc"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif /* __cpluscplus */
#endif /* __cpluscplus */
#if (LOSCFG_PLATFORM_EXC == YES)
UINT32 g_uwCurNestCount = 0;
EXC_INFO_S m_stExcInfo;
/*
* CFSR register, include UFSR,BFSR and MFSR.
*
* +----------------------------------------------------------------------------------+
* | UFSR |
* |-----------+-----------+-----------+-------+------+-------+----------+------------|
* | 31 - 26 | 25 | 24 | 23-20 | 19 | 18 | 17 | 16 |
* |-----------+-----------+-----------+-------+------+-------+----------+------------|
* | --- | DIVBYZERO | UNALIGNED | --- | NOCP | INVPC | INVSTATE | UNDEFINSTR |
* +----------------------------------------------------------------------------------+
*
* +----------------------------------------------------------------------------------+
* | BFSR |
* |-----------+-----+--------+--------+----------+-------------+-----------+---------|
* | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
* |-----------+-----+--------+--------+----------+-------------+-----------+---------|
* | BFARVALID | --- | LSPERR | STKERR | UNSTKERR | IMPRECISERR | PRECISERR | IBUSERR |
* +----------------------------------------------------------------------------------+
*
* +----------------------------------------------------------------------------------+
* | MFSR |
* |-----------+-------+---------+---------+-----------+-------+----------+-----------|
* | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
* |-----------+-------+---------+---------+-----------+-------+----------+-----------|
* | MMARVALID | --- | MLSPERR | MSTKERR | MUNSTKERR | --- | DACCVIOL | ICACCVIOL |
* +----------------------------------------------------------------------------------+
*/
UINT8 g_uwExcTbl[32] =
{
0, 0, 0, 0, 0, 0, OS_EXC_UF_DIVBYZERO, OS_EXC_UF_UNALIGNED,
0, 0, 0, 0, OS_EXC_UF_NOCP, OS_EXC_UF_INVPC, OS_EXC_UF_INVSTATE, OS_EXC_UF_UNDEFINSTR,
0, 0, 0, OS_EXC_BF_STKERR, OS_EXC_BF_UNSTKERR, OS_EXC_BF_IMPRECISERR, OS_EXC_BF_PRECISERR, OS_EXC_BF_IBUSERR,
0, 0, 0, OS_EXC_MF_MSTKERR, OS_EXC_MF_MUNSTKERR, 0, OS_EXC_MF_DACCVIOL, OS_EXC_MF_IACCVIOL
};
#if (LOSCFG_SAVE_EXC_INFO == YES)
VOID *m_puwExcContent;
UINT32 g_uwArraySize = 0;
EXC_INFO_ARRAY_S m_stExcArray[OS_EXC_TYPE_MAX - 1];
static VOID osExcSave2DDR(VOID);
#endif
extern VOID LOS_Reboot(VOID);
/*****************************************************************************
Function : osExcInfoDisplay
Description : EXC info display
Input : pstExc --- Pointer to the EXC data
Output : None
Return : None
*****************************************************************************/
LITE_OS_SEC_TEXT VOID osExcInfoDisplay(EXC_INFO_S *pstExc)
{
printf("\n\n");
PRINT_ERR("Phase = 0x%8x\n", pstExc->usPhase);
PRINT_ERR("Type = 0x%8x\n", pstExc->usType);
PRINT_ERR("FaultAddr = 0x%8x\n", pstExc->uwFaultAddr);
PRINT_ERR("ThrdPid = 0x%8x\n", pstExc->uwThrdPid);
PRINT_ERR("R0 = 0x%8x\n", pstExc->pstContext->uwR0);
PRINT_ERR("R1 = 0x%8x\n", pstExc->pstContext->uwR1);
PRINT_ERR("R2 = 0x%8x\n", pstExc->pstContext->uwR2);
PRINT_ERR("R3 = 0x%8x\n", pstExc->pstContext->uwR3);
PRINT_ERR("R4 = 0x%8x\n", pstExc->pstContext->uwR4);
PRINT_ERR("R5 = 0x%8x\n", pstExc->pstContext->uwR5);
PRINT_ERR("R6 = 0x%8x\n", pstExc->pstContext->uwR6);
PRINT_ERR("R7 = 0x%8x\n", pstExc->pstContext->uwR7);
PRINT_ERR("R8 = 0x%8x\n", pstExc->pstContext->uwR8);
PRINT_ERR("R9 = 0x%8x\n", pstExc->pstContext->uwR9);
PRINT_ERR("R10 = 0x%8x\n", pstExc->pstContext->uwR10);
PRINT_ERR("R11 = 0x%8x\n", pstExc->pstContext->uwR11);
PRINT_ERR("R12 = 0x%8x\n", pstExc->pstContext->uwR12);
PRINT_ERR("PriMask = 0x%8x\n", pstExc->pstContext->uwPriMask);
PRINT_ERR("SP = 0x%8x\n", pstExc->pstContext->uwSP);
PRINT_ERR("LR = 0x%8x\n", pstExc->pstContext->uwLR);
PRINT_ERR("PC = 0x%8x\n", pstExc->pstContext->uwPC);
PRINT_ERR("xPSR = 0x%8x\n", pstExc->pstContext->uwxPSR);
PRINT_ERR("\nplease use the addr2line tool to analyze the call stack on PC:\n");
PRINT_ERR("addr2line -e (xxx.axf/xxx.elf/xxx.out) -a -f ");
for (UINT32 i = 0; i < pstExc->uwCallStackDepth; i++)
{
PRINT_ERR("%#x ", pstExc->uwCallStack[i]);
}
return;
}
/*****************************************************************************
Function : osExcCallStackAnalysis
Description : Call stack analysis
Input : pstExc --- point to exception info
Output : None
Return : None
*****************************************************************************/
LITE_OS_SEC_TEXT VOID osExcCallStackAnalysis(EXC_INFO_S *pstExc)
{
UINT32 uwSP;
UINT32 uwLR;
UINT32 uwPC;
UINT32 uwStackStartAddr;
UINT32 uwStackSize;
UINT32 uwDepth = 0;
BOOL bFirstLrValid = FALSE;
uwSP = pstExc->pstContext->uwSP; /* sp pointer before entering exception */
/*
* save first and second depth
* first: PC before entering exception
* second: (LR - 4) before entering exception
* NOTE: If an exception occurs in the interrupt, LR may be EXC_RETURN, so we must make sure
* that LR is valid, exclude EXC_RETURN.
*/
pstExc->uwCallStack[uwDepth++] = pstExc->pstContext->uwPC;
if ((pstExc->pstContext->uwLR >= LOSCFG_EXC_CODE_START_ADDR) && \
(pstExc->pstContext->uwLR <= LOSCFG_EXC_CODE_START_ADDR + LOSCFG_EXC_CODE_SIZE))
{
pstExc->uwCallStack[uwDepth++] = pstExc->pstContext->uwLR - sizeof(VOID *); /* lr = pc + 4 */
bFirstLrValid = TRUE;
}
/*
* get the start address and size of the stack before entering the exception
*/
if (pstExc->usPhase == OS_EXC_IN_TASK) /* task use PSP */
{
uwStackStartAddr = g_stLosTask.pstRunTask->uwTopOfStack;
uwStackSize = g_stLosTask.pstRunTask->uwStackSize;
}
else /* init and interrupt use MSP */
{
uwStackStartAddr = LOSCFG_EXC_MSP_START_ADDR;
uwStackSize = LOSCFG_EXC_MSP_SIZE;
}
/*
* check stack overflow, if so, compensate for overflow, readjust stack start address and size.
*/
if (uwSP < uwStack
gitextract_prpumcnz/
├── CNAME
├── Huawei_LiteOS/
│ ├── .github/
│ │ └── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── arch/
│ │ ├── arm/
│ │ │ ├── arm-m/
│ │ │ │ ├── cortex-m0/
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── los_dispatch_gcc.S
│ │ │ │ │ │ └── los_hw_exc_gcc.S
│ │ │ │ │ ├── iar/
│ │ │ │ │ │ └── los_dispatch_iar.S
│ │ │ │ │ ├── keil/
│ │ │ │ │ │ ├── los_dispatch_keil.S
│ │ │ │ │ │ └── los_hw_exc_keil.S
│ │ │ │ │ ├── los_exc.c
│ │ │ │ │ ├── los_exc.inc
│ │ │ │ │ └── los_exc.ph
│ │ │ │ ├── cortex-m3/
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── los_dispatch_gcc.S
│ │ │ │ │ │ └── los_hw_exc_gcc.S
│ │ │ │ │ ├── iar/
│ │ │ │ │ │ └── los_dispatch_iar.S
│ │ │ │ │ ├── keil/
│ │ │ │ │ │ ├── los_dispatch_keil.S
│ │ │ │ │ │ └── los_hw_exc_keil.S
│ │ │ │ │ ├── los_exc.c
│ │ │ │ │ ├── los_exc.inc
│ │ │ │ │ ├── los_exc.ph
│ │ │ │ │ └── test_funcs.S
│ │ │ │ ├── cortex-m4/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── los_dispatch_gcc.S
│ │ │ │ │ │ └── los_hw_exc_gcc.S
│ │ │ │ │ ├── iar/
│ │ │ │ │ │ ├── los_dispatch_iar.S
│ │ │ │ │ │ └── los_hw_exc_iar.S
│ │ │ │ │ ├── keil/
│ │ │ │ │ │ ├── los_dispatch_keil.S
│ │ │ │ │ │ └── los_hw_exc_keil.S
│ │ │ │ │ ├── los_exc.c
│ │ │ │ │ ├── los_exc.inc
│ │ │ │ │ └── los_exc.ph
│ │ │ │ ├── cortex-m7/
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── los_dispatch_gcc.S
│ │ │ │ │ │ └── los_hw_exc_gcc.S
│ │ │ │ │ ├── iar/
│ │ │ │ │ │ └── los_dispatch_iar.S
│ │ │ │ │ ├── keil/
│ │ │ │ │ │ ├── los_dispatch_keil.S
│ │ │ │ │ │ └── los_hw_exc_keil.S
│ │ │ │ │ ├── los_exc.c
│ │ │ │ │ ├── los_exc.inc
│ │ │ │ │ └── los_exc.ph
│ │ │ │ ├── include/
│ │ │ │ │ ├── los_exc.h
│ │ │ │ │ ├── los_hw.h
│ │ │ │ │ ├── los_hw_tick.h
│ │ │ │ │ └── los_hwi.h
│ │ │ │ └── src/
│ │ │ │ ├── los_hw.c
│ │ │ │ ├── los_hw_tick.c
│ │ │ │ └── los_hwi.c
│ │ │ └── common/
│ │ │ └── cmsis/
│ │ │ ├── arm_common_tables.h
│ │ │ ├── arm_const_structs.h
│ │ │ ├── arm_math.h
│ │ │ ├── cmsis_armcc.h
│ │ │ ├── cmsis_armclang.h
│ │ │ ├── cmsis_compiler.h
│ │ │ ├── cmsis_gcc.h
│ │ │ ├── core_armv8mbl.h
│ │ │ ├── core_armv8mml.h
│ │ │ ├── core_cm0.h
│ │ │ ├── core_cm0plus.h
│ │ │ ├── core_cm23.h
│ │ │ ├── core_cm3.h
│ │ │ ├── core_cm33.h
│ │ │ ├── core_cm4.h
│ │ │ ├── core_cm7.h
│ │ │ ├── core_sc000.h
│ │ │ ├── core_sc300.h
│ │ │ └── tz_context.h
│ │ └── msp430/
│ │ ├── include/
│ │ │ ├── los_hw.h
│ │ │ └── los_hwi.h
│ │ └── src/
│ │ ├── ccsmacros.h
│ │ ├── los_dispatch_ccs.asm
│ │ ├── los_dispatch_iar.s43
│ │ ├── los_hw.c
│ │ ├── los_hw_tick.c
│ │ └── los_hwi.c
│ ├── build/
│ │ └── Makefile
│ ├── components/
│ │ ├── connectivity/
│ │ │ ├── agent_tiny/
│ │ │ │ ├── atiny_lwm2m/
│ │ │ │ │ ├── agent_list.h
│ │ │ │ │ ├── agenttiny.c
│ │ │ │ │ ├── atiny_context.h
│ │ │ │ │ ├── atiny_fota_manager.c
│ │ │ │ │ ├── atiny_fota_manager.h
│ │ │ │ │ ├── atiny_fota_state.c
│ │ │ │ │ ├── atiny_fota_state.h
│ │ │ │ │ ├── atiny_rpt.c
│ │ │ │ │ ├── atiny_rpt.h
│ │ │ │ │ ├── connection.c
│ │ │ │ │ ├── connection.h
│ │ │ │ │ ├── firmware_update.c
│ │ │ │ │ ├── firmware_update.h
│ │ │ │ │ ├── object_access_control.c
│ │ │ │ │ ├── object_binary_app_data_container.c
│ │ │ │ │ ├── object_comm.h
│ │ │ │ │ ├── object_connectivity_moni.c
│ │ │ │ │ ├── object_connectivity_stat.c
│ │ │ │ │ ├── object_device.c
│ │ │ │ │ ├── object_firmware.c
│ │ │ │ │ ├── object_location.c
│ │ │ │ │ ├── object_security.c
│ │ │ │ │ ├── object_server.c
│ │ │ │ │ ├── platform_adapter.c
│ │ │ │ │ ├── util_timer.c
│ │ │ │ │ └── util_timer.h
│ │ │ │ └── atiny_mqtt/
│ │ │ │ ├── flash_manager.c
│ │ │ │ ├── flash_manager.h
│ │ │ │ ├── hmac.c
│ │ │ │ ├── hmac.h
│ │ │ │ └── mqtt_client.c
│ │ │ ├── lwm2m/
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── EDL-v1.0
│ │ │ │ ├── EPL-v1.0
│ │ │ │ ├── README.md
│ │ │ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ │ │ ├── TODO
│ │ │ │ ├── about.html
│ │ │ │ ├── core/
│ │ │ │ │ ├── block1.c
│ │ │ │ │ ├── bootstrap.c
│ │ │ │ │ ├── data.c
│ │ │ │ │ ├── discover.c
│ │ │ │ │ ├── er-coap-13/
│ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ ├── er-coap-13.c
│ │ │ │ │ │ └── er-coap-13.h
│ │ │ │ │ ├── internals.h
│ │ │ │ │ ├── json.c
│ │ │ │ │ ├── liblwm2m.c
│ │ │ │ │ ├── liblwm2m.h
│ │ │ │ │ ├── liblwm2m_api.h
│ │ │ │ │ ├── list.c
│ │ │ │ │ ├── lwm2m_utils.c
│ │ │ │ │ ├── management.c
│ │ │ │ │ ├── objects.c
│ │ │ │ │ ├── observe.c
│ │ │ │ │ ├── packet.c
│ │ │ │ │ ├── registration.c
│ │ │ │ │ ├── tlv.c
│ │ │ │ │ ├── transaction.c
│ │ │ │ │ ├── uri.c
│ │ │ │ │ └── wakaama.cmake
│ │ │ │ └── examples/
│ │ │ │ └── shared/
│ │ │ │ ├── commandline.c
│ │ │ │ └── commandline.h
│ │ │ ├── mqtt/
│ │ │ │ ├── .cproject
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .project
│ │ │ │ ├── .settings/
│ │ │ │ │ ├── org.eclipse.cdt.core.prefs
│ │ │ │ │ └── org.eclipse.cdt.ui.prefs
│ │ │ │ ├── .travis.yml
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── MQTTClient-C/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── samples/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── FreeRTOS/
│ │ │ │ │ │ │ └── MQTTEcho.c
│ │ │ │ │ │ └── linux/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── build.sh
│ │ │ │ │ │ └── stdoutsub.c
│ │ │ │ │ ├── src/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── FreeRTOS/
│ │ │ │ │ │ │ ├── MQTTFreeRTOS.c
│ │ │ │ │ │ │ └── MQTTFreeRTOS.h
│ │ │ │ │ │ ├── MQTTClient.c
│ │ │ │ │ │ ├── MQTTClient.h
│ │ │ │ │ │ ├── cc3200/
│ │ │ │ │ │ │ ├── MQTTCC3200.c
│ │ │ │ │ │ │ └── MQTTCC3200.h
│ │ │ │ │ │ ├── linux/
│ │ │ │ │ │ │ ├── MQTTLinux.c
│ │ │ │ │ │ │ └── MQTTLinux.h
│ │ │ │ │ │ └── liteOS/
│ │ │ │ │ │ ├── MQTTliteos.c
│ │ │ │ │ │ └── MQTTliteos.h
│ │ │ │ │ └── test/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ └── test1.c
│ │ │ │ ├── MQTTPacket/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── samples/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── baremetalserial/
│ │ │ │ │ │ │ ├── build
│ │ │ │ │ │ │ ├── ping_nb.c
│ │ │ │ │ │ │ ├── pub0sub1_nb.c
│ │ │ │ │ │ │ ├── transport.c
│ │ │ │ │ │ │ └── transport.h
│ │ │ │ │ │ ├── build
│ │ │ │ │ │ ├── null.c
│ │ │ │ │ │ ├── ping.c
│ │ │ │ │ │ ├── ping_nb.c
│ │ │ │ │ │ ├── pub0sub1.c
│ │ │ │ │ │ ├── pub0sub1_nb.c
│ │ │ │ │ │ ├── qos0pub.c
│ │ │ │ │ │ ├── transport.c
│ │ │ │ │ │ └── transport.h
│ │ │ │ │ ├── src/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── MQTTConnect.h
│ │ │ │ │ │ ├── MQTTConnectClient.c
│ │ │ │ │ │ ├── MQTTConnectServer.c
│ │ │ │ │ │ ├── MQTTDeserializePublish.c
│ │ │ │ │ │ ├── MQTTFormat.c
│ │ │ │ │ │ ├── MQTTFormat.h
│ │ │ │ │ │ ├── MQTTPacket.c
│ │ │ │ │ │ ├── MQTTPacket.h
│ │ │ │ │ │ ├── MQTTPublish.h
│ │ │ │ │ │ ├── MQTTSerializePublish.c
│ │ │ │ │ │ ├── MQTTSubscribe.h
│ │ │ │ │ │ ├── MQTTSubscribeClient.c
│ │ │ │ │ │ ├── MQTTSubscribeServer.c
│ │ │ │ │ │ ├── MQTTUnsubscribe.h
│ │ │ │ │ │ ├── MQTTUnsubscribeClient.c
│ │ │ │ │ │ ├── MQTTUnsubscribeServer.c
│ │ │ │ │ │ └── StackTrace.h
│ │ │ │ │ └── test/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── build_test
│ │ │ │ │ └── test1.c
│ │ │ │ ├── Makefile
│ │ │ │ ├── README.md
│ │ │ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ │ │ ├── about.html
│ │ │ │ ├── edl-v10
│ │ │ │ ├── epl-v10
│ │ │ │ ├── library.properties
│ │ │ │ ├── notice.html
│ │ │ │ ├── travis-build.sh
│ │ │ │ ├── travis-env-vars
│ │ │ │ └── travis-install.sh
│ │ │ └── nb_iot/
│ │ │ └── los_nb_api.c
│ │ ├── fs/
│ │ │ ├── devfs/
│ │ │ │ └── los_devfs.c
│ │ │ ├── fatfs/
│ │ │ │ ├── ff13b/
│ │ │ │ │ ├── LICENSE.txt
│ │ │ │ │ └── source/
│ │ │ │ │ ├── 00history.txt
│ │ │ │ │ ├── 00readme.txt
│ │ │ │ │ ├── default/
│ │ │ │ │ │ └── ffconf.h
│ │ │ │ │ ├── diskio.c
│ │ │ │ │ ├── diskio.h
│ │ │ │ │ ├── ff.c
│ │ │ │ │ ├── ff.h
│ │ │ │ │ ├── ffsystem.c
│ │ │ │ │ ├── ffunicode.c
│ │ │ │ │ └── integer.h
│ │ │ │ └── los_fatfs.c
│ │ │ ├── kifs/
│ │ │ │ └── los_kifs.c
│ │ │ ├── ramfs/
│ │ │ │ └── los_ramfs.c
│ │ │ ├── spiffs/
│ │ │ │ ├── README
│ │ │ │ ├── los_spiffs.c
│ │ │ │ └── spiffs_git/
│ │ │ │ ├── FUZZING.md
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README.md
│ │ │ │ ├── docs/
│ │ │ │ │ ├── TECH_SPEC
│ │ │ │ │ └── TODO
│ │ │ │ └── src/
│ │ │ │ ├── default/
│ │ │ │ │ └── spiffs_config.h
│ │ │ │ ├── spiffs.h
│ │ │ │ ├── spiffs_cache.c
│ │ │ │ ├── spiffs_check.c
│ │ │ │ ├── spiffs_gc.c
│ │ │ │ ├── spiffs_hydrogen.c
│ │ │ │ ├── spiffs_nucleus.c
│ │ │ │ └── spiffs_nucleus.h
│ │ │ └── vfs/
│ │ │ └── los_vfs.c
│ │ ├── lib/
│ │ │ ├── cJSON/
│ │ │ │ ├── cJSON.c
│ │ │ │ └── cJSON.h
│ │ │ └── libc/
│ │ │ ├── errno.c
│ │ │ ├── malloc.c
│ │ │ └── newlib_stub.c
│ │ ├── log/
│ │ │ └── atiny_log.c
│ │ ├── net/
│ │ │ ├── at_device/
│ │ │ │ ├── emtc_bg36/
│ │ │ │ │ ├── bg36.c
│ │ │ │ │ └── bg36.h
│ │ │ │ ├── gprs_sim900a/
│ │ │ │ │ ├── sim900a.c
│ │ │ │ │ └── sim900a.h
│ │ │ │ ├── nb_bc95/
│ │ │ │ │ └── bc95.c
│ │ │ │ └── wifi_esp8266/
│ │ │ │ ├── esp8266.c
│ │ │ │ └── esp8266.h
│ │ │ ├── at_frame/
│ │ │ │ ├── at_api.c
│ │ │ │ └── at_main.c
│ │ │ ├── lwip/
│ │ │ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ │ │ ├── lwip-2.0.3/
│ │ │ │ │ ├── CHANGELOG
│ │ │ │ │ ├── COPYING
│ │ │ │ │ ├── FILES
│ │ │ │ │ ├── README
│ │ │ │ │ ├── UPGRADING
│ │ │ │ │ ├── doc/
│ │ │ │ │ │ ├── FILES
│ │ │ │ │ │ ├── NO_SYS_SampleCode.c
│ │ │ │ │ │ ├── contrib.txt
│ │ │ │ │ │ ├── doxygen/
│ │ │ │ │ │ │ ├── generate.bat
│ │ │ │ │ │ │ ├── generate.sh
│ │ │ │ │ │ │ ├── lwip.Doxyfile
│ │ │ │ │ │ │ └── main_page.h
│ │ │ │ │ │ ├── mdns.txt
│ │ │ │ │ │ ├── mqtt_client.txt
│ │ │ │ │ │ ├── ppp.txt
│ │ │ │ │ │ ├── rawapi.txt
│ │ │ │ │ │ ├── savannah.txt
│ │ │ │ │ │ └── sys_arch.txt
│ │ │ │ │ ├── src/
│ │ │ │ │ │ ├── FILES
│ │ │ │ │ │ ├── Filelists.mk
│ │ │ │ │ │ ├── api/
│ │ │ │ │ │ │ ├── api_lib.c
│ │ │ │ │ │ │ ├── api_msg.c
│ │ │ │ │ │ │ ├── err.c
│ │ │ │ │ │ │ ├── netbuf.c
│ │ │ │ │ │ │ ├── netdb.c
│ │ │ │ │ │ │ ├── netifapi.c
│ │ │ │ │ │ │ ├── sockets.c
│ │ │ │ │ │ │ └── tcpip.c
│ │ │ │ │ │ ├── apps/
│ │ │ │ │ │ │ ├── httpd/
│ │ │ │ │ │ │ │ ├── fs.c
│ │ │ │ │ │ │ │ ├── fsdata.c
│ │ │ │ │ │ │ │ ├── fsdata.h
│ │ │ │ │ │ │ │ ├── httpd.c
│ │ │ │ │ │ │ │ ├── httpd_structs.h
│ │ │ │ │ │ │ │ └── makefsdata/
│ │ │ │ │ │ │ │ ├── makefsdata
│ │ │ │ │ │ │ │ ├── makefsdata.c
│ │ │ │ │ │ │ │ └── readme.txt
│ │ │ │ │ │ │ ├── lwiperf/
│ │ │ │ │ │ │ │ └── lwiperf.c
│ │ │ │ │ │ │ ├── mdns/
│ │ │ │ │ │ │ │ └── mdns.c
│ │ │ │ │ │ │ ├── mqtt/
│ │ │ │ │ │ │ │ └── mqtt.c
│ │ │ │ │ │ │ ├── netbiosns/
│ │ │ │ │ │ │ │ └── netbiosns.c
│ │ │ │ │ │ │ ├── snmp/
│ │ │ │ │ │ │ │ ├── snmp_asn1.c
│ │ │ │ │ │ │ │ ├── snmp_asn1.h
│ │ │ │ │ │ │ │ ├── snmp_core.c
│ │ │ │ │ │ │ │ ├── snmp_core_priv.h
│ │ │ │ │ │ │ │ ├── snmp_mib2.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_icmp.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_interfaces.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_ip.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_snmp.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_system.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_tcp.c
│ │ │ │ │ │ │ │ ├── snmp_mib2_udp.c
│ │ │ │ │ │ │ │ ├── snmp_msg.c
│ │ │ │ │ │ │ │ ├── snmp_msg.h
│ │ │ │ │ │ │ │ ├── snmp_netconn.c
│ │ │ │ │ │ │ │ ├── snmp_pbuf_stream.c
│ │ │ │ │ │ │ │ ├── snmp_pbuf_stream.h
│ │ │ │ │ │ │ │ ├── snmp_raw.c
│ │ │ │ │ │ │ │ ├── snmp_scalar.c
│ │ │ │ │ │ │ │ ├── snmp_table.c
│ │ │ │ │ │ │ │ ├── snmp_threadsync.c
│ │ │ │ │ │ │ │ ├── snmp_traps.c
│ │ │ │ │ │ │ │ ├── snmpv3.c
│ │ │ │ │ │ │ │ ├── snmpv3_dummy.c
│ │ │ │ │ │ │ │ ├── snmpv3_mbedtls.c
│ │ │ │ │ │ │ │ └── snmpv3_priv.h
│ │ │ │ │ │ │ ├── sntp/
│ │ │ │ │ │ │ │ └── sntp.c
│ │ │ │ │ │ │ └── tftp/
│ │ │ │ │ │ │ └── tftp_server.c
│ │ │ │ │ │ ├── core/
│ │ │ │ │ │ │ ├── def.c
│ │ │ │ │ │ │ ├── dns.c
│ │ │ │ │ │ │ ├── inet_chksum.c
│ │ │ │ │ │ │ ├── init.c
│ │ │ │ │ │ │ ├── ip.c
│ │ │ │ │ │ │ ├── ipv4/
│ │ │ │ │ │ │ │ ├── autoip.c
│ │ │ │ │ │ │ │ ├── dhcp.c
│ │ │ │ │ │ │ │ ├── etharp.c
│ │ │ │ │ │ │ │ ├── icmp.c
│ │ │ │ │ │ │ │ ├── igmp.c
│ │ │ │ │ │ │ │ ├── ip4.c
│ │ │ │ │ │ │ │ ├── ip4_addr.c
│ │ │ │ │ │ │ │ └── ip4_frag.c
│ │ │ │ │ │ │ ├── ipv6/
│ │ │ │ │ │ │ │ ├── dhcp6.c
│ │ │ │ │ │ │ │ ├── ethip6.c
│ │ │ │ │ │ │ │ ├── icmp6.c
│ │ │ │ │ │ │ │ ├── inet6.c
│ │ │ │ │ │ │ │ ├── ip6.c
│ │ │ │ │ │ │ │ ├── ip6_addr.c
│ │ │ │ │ │ │ │ ├── ip6_frag.c
│ │ │ │ │ │ │ │ ├── mld6.c
│ │ │ │ │ │ │ │ └── nd6.c
│ │ │ │ │ │ │ ├── mem.c
│ │ │ │ │ │ │ ├── memp.c
│ │ │ │ │ │ │ ├── netif.c
│ │ │ │ │ │ │ ├── pbuf.c
│ │ │ │ │ │ │ ├── raw.c
│ │ │ │ │ │ │ ├── stats.c
│ │ │ │ │ │ │ ├── sys.c
│ │ │ │ │ │ │ ├── tcp.c
│ │ │ │ │ │ │ ├── tcp_in.c
│ │ │ │ │ │ │ ├── tcp_out.c
│ │ │ │ │ │ │ ├── timeouts.c
│ │ │ │ │ │ │ └── udp.c
│ │ │ │ │ │ ├── include/
│ │ │ │ │ │ │ ├── lwip/
│ │ │ │ │ │ │ │ ├── api.h
│ │ │ │ │ │ │ │ ├── apps/
│ │ │ │ │ │ │ │ │ ├── FILES
│ │ │ │ │ │ │ │ │ ├── fs.h
│ │ │ │ │ │ │ │ │ ├── httpd.h
│ │ │ │ │ │ │ │ │ ├── httpd_opts.h
│ │ │ │ │ │ │ │ │ ├── lwiperf.h
│ │ │ │ │ │ │ │ │ ├── mdns.h
│ │ │ │ │ │ │ │ │ ├── mdns_opts.h
│ │ │ │ │ │ │ │ │ ├── mdns_priv.h
│ │ │ │ │ │ │ │ │ ├── mqtt.h
│ │ │ │ │ │ │ │ │ ├── mqtt_opts.h
│ │ │ │ │ │ │ │ │ ├── netbiosns.h
│ │ │ │ │ │ │ │ │ ├── netbiosns_opts.h
│ │ │ │ │ │ │ │ │ ├── snmp.h
│ │ │ │ │ │ │ │ │ ├── snmp_core.h
│ │ │ │ │ │ │ │ │ ├── snmp_mib2.h
│ │ │ │ │ │ │ │ │ ├── snmp_opts.h
│ │ │ │ │ │ │ │ │ ├── snmp_scalar.h
│ │ │ │ │ │ │ │ │ ├── snmp_table.h
│ │ │ │ │ │ │ │ │ ├── snmp_threadsync.h
│ │ │ │ │ │ │ │ │ ├── snmpv3.h
│ │ │ │ │ │ │ │ │ ├── sntp.h
│ │ │ │ │ │ │ │ │ ├── sntp_opts.h
│ │ │ │ │ │ │ │ │ ├── tftp_opts.h
│ │ │ │ │ │ │ │ │ └── tftp_server.h
│ │ │ │ │ │ │ │ ├── arch.h
│ │ │ │ │ │ │ │ ├── autoip.h
│ │ │ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ │ │ ├── def.h
│ │ │ │ │ │ │ │ ├── dhcp.h
│ │ │ │ │ │ │ │ ├── dhcp6.h
│ │ │ │ │ │ │ │ ├── dns.h
│ │ │ │ │ │ │ │ ├── err.h
│ │ │ │ │ │ │ │ ├── errno.h
│ │ │ │ │ │ │ │ ├── etharp.h
│ │ │ │ │ │ │ │ ├── ethip6.h
│ │ │ │ │ │ │ │ ├── icmp.h
│ │ │ │ │ │ │ │ ├── icmp6.h
│ │ │ │ │ │ │ │ ├── igmp.h
│ │ │ │ │ │ │ │ ├── inet.h
│ │ │ │ │ │ │ │ ├── inet_chksum.h
│ │ │ │ │ │ │ │ ├── init.h
│ │ │ │ │ │ │ │ ├── ip.h
│ │ │ │ │ │ │ │ ├── ip4.h
│ │ │ │ │ │ │ │ ├── ip4_addr.h
│ │ │ │ │ │ │ │ ├── ip4_frag.h
│ │ │ │ │ │ │ │ ├── ip6.h
│ │ │ │ │ │ │ │ ├── ip6_addr.h
│ │ │ │ │ │ │ │ ├── ip6_frag.h
│ │ │ │ │ │ │ │ ├── ip_addr.h
│ │ │ │ │ │ │ │ ├── mem.h
│ │ │ │ │ │ │ │ ├── memp.h
│ │ │ │ │ │ │ │ ├── mld6.h
│ │ │ │ │ │ │ │ ├── nd6.h
│ │ │ │ │ │ │ │ ├── netbuf.h
│ │ │ │ │ │ │ │ ├── netdb.h
│ │ │ │ │ │ │ │ ├── netif.h
│ │ │ │ │ │ │ │ ├── netifapi.h
│ │ │ │ │ │ │ │ ├── opt.h
│ │ │ │ │ │ │ │ ├── pbuf.h
│ │ │ │ │ │ │ │ ├── priv/
│ │ │ │ │ │ │ │ │ ├── api_msg.h
│ │ │ │ │ │ │ │ │ ├── memp_priv.h
│ │ │ │ │ │ │ │ │ ├── memp_std.h
│ │ │ │ │ │ │ │ │ ├── nd6_priv.h
│ │ │ │ │ │ │ │ │ ├── tcp_priv.h
│ │ │ │ │ │ │ │ │ └── tcpip_priv.h
│ │ │ │ │ │ │ │ ├── prot/
│ │ │ │ │ │ │ │ │ ├── autoip.h
│ │ │ │ │ │ │ │ │ ├── dhcp.h
│ │ │ │ │ │ │ │ │ ├── dns.h
│ │ │ │ │ │ │ │ │ ├── etharp.h
│ │ │ │ │ │ │ │ │ ├── ethernet.h
│ │ │ │ │ │ │ │ │ ├── icmp.h
│ │ │ │ │ │ │ │ │ ├── icmp6.h
│ │ │ │ │ │ │ │ │ ├── igmp.h
│ │ │ │ │ │ │ │ │ ├── ip.h
│ │ │ │ │ │ │ │ │ ├── ip4.h
│ │ │ │ │ │ │ │ │ ├── ip6.h
│ │ │ │ │ │ │ │ │ ├── mld6.h
│ │ │ │ │ │ │ │ │ ├── nd6.h
│ │ │ │ │ │ │ │ │ ├── tcp.h
│ │ │ │ │ │ │ │ │ └── udp.h
│ │ │ │ │ │ │ │ ├── raw.h
│ │ │ │ │ │ │ │ ├── sio.h
│ │ │ │ │ │ │ │ ├── snmp.h
│ │ │ │ │ │ │ │ ├── sockets.h
│ │ │ │ │ │ │ │ ├── stats.h
│ │ │ │ │ │ │ │ ├── sys.h
│ │ │ │ │ │ │ │ ├── tcp.h
│ │ │ │ │ │ │ │ ├── tcpip.h
│ │ │ │ │ │ │ │ ├── timeouts.h
│ │ │ │ │ │ │ │ └── udp.h
│ │ │ │ │ │ │ ├── netif/
│ │ │ │ │ │ │ │ ├── etharp.h
│ │ │ │ │ │ │ │ ├── ethernet.h
│ │ │ │ │ │ │ │ ├── lowpan6.h
│ │ │ │ │ │ │ │ ├── lowpan6_opts.h
│ │ │ │ │ │ │ │ ├── ppp/
│ │ │ │ │ │ │ │ │ ├── ccp.h
│ │ │ │ │ │ │ │ │ ├── chap-md5.h
│ │ │ │ │ │ │ │ │ ├── chap-new.h
│ │ │ │ │ │ │ │ │ ├── chap_ms.h
│ │ │ │ │ │ │ │ │ ├── eap.h
│ │ │ │ │ │ │ │ │ ├── ecp.h
│ │ │ │ │ │ │ │ │ ├── eui64.h
│ │ │ │ │ │ │ │ │ ├── fsm.h
│ │ │ │ │ │ │ │ │ ├── ipcp.h
│ │ │ │ │ │ │ │ │ ├── ipv6cp.h
│ │ │ │ │ │ │ │ │ ├── lcp.h
│ │ │ │ │ │ │ │ │ ├── magic.h
│ │ │ │ │ │ │ │ │ ├── mppe.h
│ │ │ │ │ │ │ │ │ ├── polarssl/
│ │ │ │ │ │ │ │ │ │ ├── arc4.h
│ │ │ │ │ │ │ │ │ │ ├── des.h
│ │ │ │ │ │ │ │ │ │ ├── md4.h
│ │ │ │ │ │ │ │ │ │ ├── md5.h
│ │ │ │ │ │ │ │ │ │ └── sha1.h
│ │ │ │ │ │ │ │ │ ├── ppp.h
│ │ │ │ │ │ │ │ │ ├── ppp_impl.h
│ │ │ │ │ │ │ │ │ ├── ppp_opts.h
│ │ │ │ │ │ │ │ │ ├── pppapi.h
│ │ │ │ │ │ │ │ │ ├── pppcrypt.h
│ │ │ │ │ │ │ │ │ ├── pppdebug.h
│ │ │ │ │ │ │ │ │ ├── pppoe.h
│ │ │ │ │ │ │ │ │ ├── pppol2tp.h
│ │ │ │ │ │ │ │ │ ├── pppos.h
│ │ │ │ │ │ │ │ │ ├── upap.h
│ │ │ │ │ │ │ │ │ └── vj.h
│ │ │ │ │ │ │ │ └── slipif.h
│ │ │ │ │ │ │ └── posix/
│ │ │ │ │ │ │ ├── errno.h
│ │ │ │ │ │ │ ├── netdb.h
│ │ │ │ │ │ │ └── sys/
│ │ │ │ │ │ │ └── socket.h
│ │ │ │ │ │ └── netif/
│ │ │ │ │ │ ├── FILES
│ │ │ │ │ │ ├── ethernet.c
│ │ │ │ │ │ ├── ethernetif_origin.c
│ │ │ │ │ │ ├── lowpan6.c
│ │ │ │ │ │ ├── ppp/
│ │ │ │ │ │ │ ├── PPPD_FOLLOWUP
│ │ │ │ │ │ │ ├── auth.c
│ │ │ │ │ │ │ ├── ccp.c
│ │ │ │ │ │ │ ├── chap-md5.c
│ │ │ │ │ │ │ ├── chap-new.c
│ │ │ │ │ │ │ ├── chap_ms.c
│ │ │ │ │ │ │ ├── demand.c
│ │ │ │ │ │ │ ├── eap.c
│ │ │ │ │ │ │ ├── ecp.c
│ │ │ │ │ │ │ ├── eui64.c
│ │ │ │ │ │ │ ├── fsm.c
│ │ │ │ │ │ │ ├── ipcp.c
│ │ │ │ │ │ │ ├── ipv6cp.c
│ │ │ │ │ │ │ ├── lcp.c
│ │ │ │ │ │ │ ├── magic.c
│ │ │ │ │ │ │ ├── mppe.c
│ │ │ │ │ │ │ ├── multilink.c
│ │ │ │ │ │ │ ├── polarssl/
│ │ │ │ │ │ │ │ ├── README
│ │ │ │ │ │ │ │ ├── arc4.c
│ │ │ │ │ │ │ │ ├── des.c
│ │ │ │ │ │ │ │ ├── md4.c
│ │ │ │ │ │ │ │ ├── md5.c
│ │ │ │ │ │ │ │ └── sha1.c
│ │ │ │ │ │ │ ├── ppp.c
│ │ │ │ │ │ │ ├── pppapi.c
│ │ │ │ │ │ │ ├── pppcrypt.c
│ │ │ │ │ │ │ ├── pppoe.c
│ │ │ │ │ │ │ ├── pppol2tp.c
│ │ │ │ │ │ │ ├── pppos.c
│ │ │ │ │ │ │ ├── upap.c
│ │ │ │ │ │ │ ├── utils.c
│ │ │ │ │ │ │ └── vj.c
│ │ │ │ │ │ └── slipif.c
│ │ │ │ │ └── test/
│ │ │ │ │ ├── fuzz/
│ │ │ │ │ │ ├── Makefile
│ │ │ │ │ │ ├── README
│ │ │ │ │ │ ├── config.h
│ │ │ │ │ │ ├── fuzz.c
│ │ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ │ └── output_to_pcap.sh
│ │ │ │ │ └── unit/
│ │ │ │ │ ├── core/
│ │ │ │ │ │ ├── test_mem.c
│ │ │ │ │ │ ├── test_mem.h
│ │ │ │ │ │ ├── test_pbuf.c
│ │ │ │ │ │ └── test_pbuf.h
│ │ │ │ │ ├── dhcp/
│ │ │ │ │ │ ├── test_dhcp.c
│ │ │ │ │ │ └── test_dhcp.h
│ │ │ │ │ ├── etharp/
│ │ │ │ │ │ ├── test_etharp.c
│ │ │ │ │ │ └── test_etharp.h
│ │ │ │ │ ├── ip4/
│ │ │ │ │ │ ├── test_ip4.c
│ │ │ │ │ │ └── test_ip4.h
│ │ │ │ │ ├── lwip_check.h
│ │ │ │ │ ├── lwip_unittests.c
│ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ ├── mdns/
│ │ │ │ │ │ ├── test_mdns.c
│ │ │ │ │ │ └── test_mdns.h
│ │ │ │ │ ├── tcp/
│ │ │ │ │ │ ├── tcp_helper.c
│ │ │ │ │ │ ├── tcp_helper.h
│ │ │ │ │ │ ├── test_tcp.c
│ │ │ │ │ │ ├── test_tcp.h
│ │ │ │ │ │ ├── test_tcp_oos.c
│ │ │ │ │ │ └── test_tcp_oos.h
│ │ │ │ │ └── udp/
│ │ │ │ │ ├── test_udp.c
│ │ │ │ │ └── test_udp.h
│ │ │ │ ├── lwip_port/
│ │ │ │ │ ├── OS/
│ │ │ │ │ │ ├── ethernetif.c
│ │ │ │ │ │ ├── ethernetif.h
│ │ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ │ └── sys_arch.c
│ │ │ │ │ └── arch/
│ │ │ │ │ ├── bpstruct.h
│ │ │ │ │ ├── cc.h
│ │ │ │ │ ├── cpu.h
│ │ │ │ │ ├── epstruct.h
│ │ │ │ │ ├── init.h
│ │ │ │ │ ├── lib.h
│ │ │ │ │ ├── perf.h
│ │ │ │ │ └── sys_arch.h
│ │ │ │ └── ppp_port/
│ │ │ │ ├── osport/
│ │ │ │ │ ├── iodev.c
│ │ │ │ │ ├── kernel.c
│ │ │ │ │ ├── osport.h
│ │ │ │ │ └── ring.c
│ │ │ │ └── ppppos/
│ │ │ │ ├── atcmd.c
│ │ │ │ └── demo.c
│ │ │ └── sal/
│ │ │ └── atiny_socket.c
│ │ ├── ota/
│ │ │ ├── flag_operate/
│ │ │ │ ├── flag_manager.c
│ │ │ │ ├── flag_manager.h
│ │ │ │ ├── upgrade_flag.c
│ │ │ │ └── upgrade_flag.h
│ │ │ ├── package/
│ │ │ │ ├── opt/
│ │ │ │ │ ├── package_sha256.c
│ │ │ │ │ ├── package_sha256.h
│ │ │ │ │ ├── package_sha256_rsa2048.c
│ │ │ │ │ └── package_sha256_rsa2048.h
│ │ │ │ ├── package.c
│ │ │ │ ├── package_checksum.c
│ │ │ │ ├── package_checksum.h
│ │ │ │ ├── package_device.h
│ │ │ │ ├── package_head.c
│ │ │ │ ├── package_head.h
│ │ │ │ ├── package_writer.c
│ │ │ │ └── package_writer.h
│ │ │ ├── script/
│ │ │ │ ├── config.xml
│ │ │ │ ├── gen_key.py
│ │ │ │ ├── package_software.py
│ │ │ │ ├── private_key.pem
│ │ │ │ └── public_key.pem
│ │ │ ├── sota/
│ │ │ │ ├── sota.c
│ │ │ │ ├── sota_hal.c
│ │ │ │ └── sota_hal.h
│ │ │ └── utility/
│ │ │ ├── ota_crc.c
│ │ │ └── ota_crc.h
│ │ └── security/
│ │ └── mbedtls/
│ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ ├── mbedtls-2.6.0/
│ │ │ ├── .github/
│ │ │ │ ├── issue_template.md
│ │ │ │ └── pull_request_template.md
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── CMakeLists.txt
│ │ │ ├── ChangeLog
│ │ │ ├── DartConfiguration.tcl
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── apache-2.0.txt
│ │ │ ├── circle.yml
│ │ │ ├── configs/
│ │ │ │ ├── README.txt
│ │ │ │ ├── config-ccm-psk-tls1_2.h
│ │ │ │ ├── config-mini-tls1_1.h
│ │ │ │ ├── config-no-entropy.h
│ │ │ │ ├── config-picocoin.h
│ │ │ │ ├── config-suite-b.h
│ │ │ │ └── config-thread.h
│ │ │ ├── doxygen/
│ │ │ │ ├── input/
│ │ │ │ │ ├── doc_encdec.h
│ │ │ │ │ ├── doc_hashing.h
│ │ │ │ │ ├── doc_mainpage.h
│ │ │ │ │ ├── doc_rng.h
│ │ │ │ │ ├── doc_ssltls.h
│ │ │ │ │ ├── doc_tcpip.h
│ │ │ │ │ └── doc_x509.h
│ │ │ │ └── mbedtls.doxyfile
│ │ │ ├── include/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── mbedtls/
│ │ │ │ ├── aes.h
│ │ │ │ ├── aesni.h
│ │ │ │ ├── arc4.h
│ │ │ │ ├── asn1.h
│ │ │ │ ├── asn1write.h
│ │ │ │ ├── base64.h
│ │ │ │ ├── bignum.h
│ │ │ │ ├── blowfish.h
│ │ │ │ ├── bn_mul.h
│ │ │ │ ├── camellia.h
│ │ │ │ ├── ccm.h
│ │ │ │ ├── certs.h
│ │ │ │ ├── check_config.h
│ │ │ │ ├── cipher.h
│ │ │ │ ├── cipher_internal.h
│ │ │ │ ├── cmac.h
│ │ │ │ ├── compat-1.3.h
│ │ │ │ ├── config.h
│ │ │ │ ├── ctr_drbg.h
│ │ │ │ ├── debug.h
│ │ │ │ ├── des.h
│ │ │ │ ├── dhm.h
│ │ │ │ ├── ecdh.h
│ │ │ │ ├── ecdsa.h
│ │ │ │ ├── ecjpake.h
│ │ │ │ ├── ecp.h
│ │ │ │ ├── ecp_internal.h
│ │ │ │ ├── entropy.h
│ │ │ │ ├── entropy_poll.h
│ │ │ │ ├── error.h
│ │ │ │ ├── gcm.h
│ │ │ │ ├── havege.h
│ │ │ │ ├── hmac_drbg.h
│ │ │ │ ├── md.h
│ │ │ │ ├── md2.h
│ │ │ │ ├── md4.h
│ │ │ │ ├── md5.h
│ │ │ │ ├── md_internal.h
│ │ │ │ ├── memory_buffer_alloc.h
│ │ │ │ ├── net.h
│ │ │ │ ├── net_sockets.h
│ │ │ │ ├── oid.h
│ │ │ │ ├── padlock.h
│ │ │ │ ├── pem.h
│ │ │ │ ├── pk.h
│ │ │ │ ├── pk_internal.h
│ │ │ │ ├── pkcs11.h
│ │ │ │ ├── pkcs12.h
│ │ │ │ ├── pkcs5.h
│ │ │ │ ├── platform.h
│ │ │ │ ├── platform_time.h
│ │ │ │ ├── ripemd160.h
│ │ │ │ ├── rsa.h
│ │ │ │ ├── sha1.h
│ │ │ │ ├── sha256.h
│ │ │ │ ├── sha512.h
│ │ │ │ ├── ssl.h
│ │ │ │ ├── ssl_cache.h
│ │ │ │ ├── ssl_ciphersuites.h
│ │ │ │ ├── ssl_cookie.h
│ │ │ │ ├── ssl_internal.h
│ │ │ │ ├── ssl_ticket.h
│ │ │ │ ├── threading.h
│ │ │ │ ├── timing.h
│ │ │ │ ├── version.h
│ │ │ │ ├── x509.h
│ │ │ │ ├── x509_crl.h
│ │ │ │ ├── x509_crt.h
│ │ │ │ ├── x509_csr.h
│ │ │ │ └── xtea.h
│ │ │ ├── library/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Makefile
│ │ │ │ ├── aes.c
│ │ │ │ ├── aesni.c
│ │ │ │ ├── arc4.c
│ │ │ │ ├── asn1parse.c
│ │ │ │ ├── asn1write.c
│ │ │ │ ├── base64.c
│ │ │ │ ├── bignum.c
│ │ │ │ ├── blowfish.c
│ │ │ │ ├── camellia.c
│ │ │ │ ├── ccm.c
│ │ │ │ ├── certs.c
│ │ │ │ ├── cipher.c
│ │ │ │ ├── cipher_wrap.c
│ │ │ │ ├── cmac.c
│ │ │ │ ├── ctr_drbg.c
│ │ │ │ ├── debug.c
│ │ │ │ ├── des.c
│ │ │ │ ├── dhm.c
│ │ │ │ ├── ecdh.c
│ │ │ │ ├── ecdsa.c
│ │ │ │ ├── ecjpake.c
│ │ │ │ ├── ecp.c
│ │ │ │ ├── ecp_curves.c
│ │ │ │ ├── entropy.c
│ │ │ │ ├── entropy_poll.c
│ │ │ │ ├── error.c
│ │ │ │ ├── gcm.c
│ │ │ │ ├── havege.c
│ │ │ │ ├── hmac_drbg.c
│ │ │ │ ├── md.c
│ │ │ │ ├── md2.c
│ │ │ │ ├── md4.c
│ │ │ │ ├── md5.c
│ │ │ │ ├── md_wrap.c
│ │ │ │ ├── memory_buffer_alloc.c
│ │ │ │ ├── net_sockets.c
│ │ │ │ ├── oid.c
│ │ │ │ ├── padlock.c
│ │ │ │ ├── pem.c
│ │ │ │ ├── pk.c
│ │ │ │ ├── pk_wrap.c
│ │ │ │ ├── pkcs11.c
│ │ │ │ ├── pkcs12.c
│ │ │ │ ├── pkcs5.c
│ │ │ │ ├── pkparse.c
│ │ │ │ ├── pkwrite.c
│ │ │ │ ├── platform.c
│ │ │ │ ├── ripemd160.c
│ │ │ │ ├── rsa.c
│ │ │ │ ├── sha1.c
│ │ │ │ ├── sha256.c
│ │ │ │ ├── sha512.c
│ │ │ │ ├── ssl_cache.c
│ │ │ │ ├── ssl_ciphersuites.c
│ │ │ │ ├── ssl_cli.c
│ │ │ │ ├── ssl_cookie.c
│ │ │ │ ├── ssl_srv.c
│ │ │ │ ├── ssl_ticket.c
│ │ │ │ ├── ssl_tls.c
│ │ │ │ ├── threading.c
│ │ │ │ ├── timing.c
│ │ │ │ ├── version.c
│ │ │ │ ├── version_features.c
│ │ │ │ ├── x509.c
│ │ │ │ ├── x509_create.c
│ │ │ │ ├── x509_crl.c
│ │ │ │ ├── x509_crt.c
│ │ │ │ ├── x509_csr.c
│ │ │ │ ├── x509write_crt.c
│ │ │ │ ├── x509write_csr.c
│ │ │ │ └── xtea.c
│ │ │ ├── programs/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Makefile
│ │ │ │ ├── aes/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── aescrypt2.c
│ │ │ │ │ └── crypt_and_hash.c
│ │ │ │ ├── hash/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── generic_sum.c
│ │ │ │ │ └── hello.c
│ │ │ │ ├── pkey/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── dh_client.c
│ │ │ │ │ ├── dh_genprime.c
│ │ │ │ │ ├── dh_prime.txt
│ │ │ │ │ ├── dh_server.c
│ │ │ │ │ ├── ecdh_curve25519.c
│ │ │ │ │ ├── ecdsa.c
│ │ │ │ │ ├── gen_key.c
│ │ │ │ │ ├── key_app.c
│ │ │ │ │ ├── key_app_writer.c
│ │ │ │ │ ├── mpi_demo.c
│ │ │ │ │ ├── pk_decrypt.c
│ │ │ │ │ ├── pk_encrypt.c
│ │ │ │ │ ├── pk_sign.c
│ │ │ │ │ ├── pk_verify.c
│ │ │ │ │ ├── rsa_decrypt.c
│ │ │ │ │ ├── rsa_encrypt.c
│ │ │ │ │ ├── rsa_genkey.c
│ │ │ │ │ ├── rsa_priv.txt
│ │ │ │ │ ├── rsa_pub.txt
│ │ │ │ │ ├── rsa_sign.c
│ │ │ │ │ ├── rsa_sign_pss.c
│ │ │ │ │ ├── rsa_verify.c
│ │ │ │ │ └── rsa_verify_pss.c
│ │ │ │ ├── random/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── gen_entropy.c
│ │ │ │ │ ├── gen_random_ctr_drbg.c
│ │ │ │ │ └── gen_random_havege.c
│ │ │ │ ├── ssl/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── dtls_client.c
│ │ │ │ │ ├── dtls_server.c
│ │ │ │ │ ├── mini_client.c
│ │ │ │ │ ├── ssl_client1.c
│ │ │ │ │ ├── ssl_client2.c
│ │ │ │ │ ├── ssl_fork_server.c
│ │ │ │ │ ├── ssl_mail_client.c
│ │ │ │ │ ├── ssl_pthread_server.c
│ │ │ │ │ ├── ssl_server.c
│ │ │ │ │ └── ssl_server2.c
│ │ │ │ ├── test/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── benchmark.c
│ │ │ │ │ ├── selftest.c
│ │ │ │ │ ├── ssl_cert_test.c
│ │ │ │ │ └── udp_proxy.c
│ │ │ │ ├── util/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── pem2der.c
│ │ │ │ │ └── strerror.c
│ │ │ │ ├── wince_main.c
│ │ │ │ └── x509/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── cert_app.c
│ │ │ │ ├── cert_req.c
│ │ │ │ ├── cert_write.c
│ │ │ │ ├── crl_app.c
│ │ │ │ └── req_app.c
│ │ │ ├── scripts/
│ │ │ │ ├── apidoc_full.sh
│ │ │ │ ├── bump_version.sh
│ │ │ │ ├── config.pl
│ │ │ │ ├── data_files/
│ │ │ │ │ ├── error.fmt
│ │ │ │ │ ├── rename-1.3-2.0.txt
│ │ │ │ │ ├── version_features.fmt
│ │ │ │ │ ├── vs2010-app-template.vcxproj
│ │ │ │ │ ├── vs2010-main-template.vcxproj
│ │ │ │ │ ├── vs2010-sln-template.sln
│ │ │ │ │ ├── vs6-app-template.dsp
│ │ │ │ │ ├── vs6-main-template.dsp
│ │ │ │ │ └── vs6-workspace-template.dsw
│ │ │ │ ├── ecc-heap.sh
│ │ │ │ ├── find-mem-leak.cocci
│ │ │ │ ├── footprint.sh
│ │ │ │ ├── generate_errors.pl
│ │ │ │ ├── generate_features.pl
│ │ │ │ ├── generate_visualc_files.pl
│ │ │ │ ├── malloc-init.pl
│ │ │ │ ├── massif_max.pl
│ │ │ │ ├── memory.sh
│ │ │ │ ├── output_env.sh
│ │ │ │ ├── rename.pl
│ │ │ │ ├── rm-malloc-cast.cocci
│ │ │ │ └── tmp_ignore_makefiles.sh
│ │ │ ├── tests/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Descriptions.txt
│ │ │ │ ├── Makefile
│ │ │ │ ├── compat.sh
│ │ │ │ ├── data_files/
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── Readme-x509.txt
│ │ │ │ │ ├── bitstring-in-dn.pem
│ │ │ │ │ ├── cert_example_multi.crt
│ │ │ │ │ ├── cert_example_multi_nocn.crt
│ │ │ │ │ ├── cert_example_wildcard.crt
│ │ │ │ │ ├── cert_md2.crt
│ │ │ │ │ ├── cert_md4.crt
│ │ │ │ │ ├── cert_md5.crt
│ │ │ │ │ ├── cert_sha1.crt
│ │ │ │ │ ├── cert_sha224.crt
│ │ │ │ │ ├── cert_sha256.crt
│ │ │ │ │ ├── cert_sha384.crt
│ │ │ │ │ ├── cert_sha512.crt
│ │ │ │ │ ├── cert_v1_with_ext.crt
│ │ │ │ │ ├── cli-rsa-sha1.crt
│ │ │ │ │ ├── cli-rsa-sha256.crt
│ │ │ │ │ ├── cli-rsa.key
│ │ │ │ │ ├── cli.opensslconf
│ │ │ │ │ ├── cli2.crt
│ │ │ │ │ ├── cli2.key
│ │ │ │ │ ├── crl-ec-sha1.pem
│ │ │ │ │ ├── crl-ec-sha224.pem
│ │ │ │ │ ├── crl-ec-sha256.pem
│ │ │ │ │ ├── crl-ec-sha384.pem
│ │ │ │ │ ├── crl-ec-sha512.pem
│ │ │ │ │ ├── crl-future.pem
│ │ │ │ │ ├── crl-malformed-trailing-spaces.pem
│ │ │ │ │ ├── crl-rsa-pss-sha1-badsign.pem
│ │ │ │ │ ├── crl-rsa-pss-sha1.pem
│ │ │ │ │ ├── crl-rsa-pss-sha224.pem
│ │ │ │ │ ├── crl-rsa-pss-sha256.pem
│ │ │ │ │ ├── crl-rsa-pss-sha384.pem
│ │ │ │ │ ├── crl-rsa-pss-sha512.pem
│ │ │ │ │ ├── crl.pem
│ │ │ │ │ ├── crl_cat_ec-rsa.pem
│ │ │ │ │ ├── crl_cat_ecfut-rsa.pem
│ │ │ │ │ ├── crl_cat_rsa-ec.pem
│ │ │ │ │ ├── crl_cat_rsabadpem-ec.pem
│ │ │ │ │ ├── crl_expired.pem
│ │ │ │ │ ├── crl_md2.pem
│ │ │ │ │ ├── crl_md4.pem
│ │ │ │ │ ├── crl_md5.pem
│ │ │ │ │ ├── crl_sha1.pem
│ │ │ │ │ ├── crl_sha224.pem
│ │ │ │ │ ├── crl_sha256.pem
│ │ │ │ │ ├── crl_sha384.pem
│ │ │ │ │ ├── crl_sha512.pem
│ │ │ │ │ ├── crt_cat_rsaexp-ec.pem
│ │ │ │ │ ├── dh.1000.pem
│ │ │ │ │ ├── dh.optlen.pem
│ │ │ │ │ ├── dhparams.pem
│ │ │ │ │ ├── dir-maxpath/
│ │ │ │ │ │ ├── 00.crt
│ │ │ │ │ │ ├── 00.key
│ │ │ │ │ │ ├── 01.crt
│ │ │ │ │ │ ├── 01.key
│ │ │ │ │ │ ├── 02.crt
│ │ │ │ │ │ ├── 02.key
│ │ │ │ │ │ ├── 03.crt
│ │ │ │ │ │ ├── 03.key
│ │ │ │ │ │ ├── 04.crt
│ │ │ │ │ │ ├── 04.key
│ │ │ │ │ │ ├── 05.crt
│ │ │ │ │ │ ├── 05.key
│ │ │ │ │ │ ├── 06.crt
│ │ │ │ │ │ ├── 06.key
│ │ │ │ │ │ ├── 07.crt
│ │ │ │ │ │ ├── 07.key
│ │ │ │ │ │ ├── 08.crt
│ │ │ │ │ │ ├── 08.key
│ │ │ │ │ │ ├── 09.crt
│ │ │ │ │ │ ├── 09.key
│ │ │ │ │ │ ├── 10.crt
│ │ │ │ │ │ ├── 10.key
│ │ │ │ │ │ ├── 11.crt
│ │ │ │ │ │ ├── 11.key
│ │ │ │ │ │ ├── 12.crt
│ │ │ │ │ │ ├── 12.key
│ │ │ │ │ │ ├── 13.crt
│ │ │ │ │ │ ├── 13.key
│ │ │ │ │ │ ├── 14.crt
│ │ │ │ │ │ ├── 14.key
│ │ │ │ │ │ ├── 15.crt
│ │ │ │ │ │ ├── 15.key
│ │ │ │ │ │ ├── 16.crt
│ │ │ │ │ │ ├── 16.key
│ │ │ │ │ │ ├── 17.crt
│ │ │ │ │ │ ├── 17.key
│ │ │ │ │ │ ├── 18.crt
│ │ │ │ │ │ ├── 18.key
│ │ │ │ │ │ ├── 19.crt
│ │ │ │ │ │ ├── 19.key
│ │ │ │ │ │ ├── 20.crt
│ │ │ │ │ │ ├── 20.key
│ │ │ │ │ │ ├── Readme.txt
│ │ │ │ │ │ ├── c00.pem
│ │ │ │ │ │ ├── c01.pem
│ │ │ │ │ │ ├── c02.pem
│ │ │ │ │ │ ├── c03.pem
│ │ │ │ │ │ ├── c04.pem
│ │ │ │ │ │ ├── c05.pem
│ │ │ │ │ │ ├── c06.pem
│ │ │ │ │ │ ├── c07.pem
│ │ │ │ │ │ ├── c08.pem
│ │ │ │ │ │ ├── c09.pem
│ │ │ │ │ │ ├── c10.pem
│ │ │ │ │ │ ├── c11.pem
│ │ │ │ │ │ ├── c12.pem
│ │ │ │ │ │ ├── c13.pem
│ │ │ │ │ │ ├── c14.pem
│ │ │ │ │ │ ├── c15.pem
│ │ │ │ │ │ ├── c16.pem
│ │ │ │ │ │ ├── c17.pem
│ │ │ │ │ │ ├── c18.pem
│ │ │ │ │ │ ├── c19.pem
│ │ │ │ │ │ ├── c20.pem
│ │ │ │ │ │ ├── int.opensslconf
│ │ │ │ │ │ └── long.sh
│ │ │ │ │ ├── dir1/
│ │ │ │ │ │ └── test-ca.crt
│ │ │ │ │ ├── dir2/
│ │ │ │ │ │ ├── test-ca.crt
│ │ │ │ │ │ └── test-ca2.crt
│ │ │ │ │ ├── dir3/
│ │ │ │ │ │ ├── Readme
│ │ │ │ │ │ ├── test-ca.crt
│ │ │ │ │ │ └── test-ca2.crt
│ │ │ │ │ ├── dir4/
│ │ │ │ │ │ ├── Readme
│ │ │ │ │ │ ├── cert11.crt
│ │ │ │ │ │ ├── cert12.crt
│ │ │ │ │ │ ├── cert13.crt
│ │ │ │ │ │ ├── cert14.crt
│ │ │ │ │ │ ├── cert21.crt
│ │ │ │ │ │ ├── cert22.crt
│ │ │ │ │ │ ├── cert23.crt
│ │ │ │ │ │ ├── cert31.crt
│ │ │ │ │ │ ├── cert32.crt
│ │ │ │ │ │ ├── cert33.crt
│ │ │ │ │ │ ├── cert34.crt
│ │ │ │ │ │ ├── cert41.crt
│ │ │ │ │ │ ├── cert42.crt
│ │ │ │ │ │ ├── cert43.crt
│ │ │ │ │ │ ├── cert44.crt
│ │ │ │ │ │ ├── cert45.crt
│ │ │ │ │ │ ├── cert51.crt
│ │ │ │ │ │ ├── cert52.crt
│ │ │ │ │ │ ├── cert53.crt
│ │ │ │ │ │ ├── cert54.crt
│ │ │ │ │ │ ├── cert61.crt
│ │ │ │ │ │ ├── cert62.crt
│ │ │ │ │ │ ├── cert63.crt
│ │ │ │ │ │ ├── cert71.crt
│ │ │ │ │ │ ├── cert72.crt
│ │ │ │ │ │ ├── cert73.crt
│ │ │ │ │ │ ├── cert74.crt
│ │ │ │ │ │ ├── cert81.crt
│ │ │ │ │ │ ├── cert82.crt
│ │ │ │ │ │ ├── cert83.crt
│ │ │ │ │ │ ├── cert91.crt
│ │ │ │ │ │ └── cert92.crt
│ │ │ │ │ ├── ec_224_prv.pem
│ │ │ │ │ ├── ec_224_pub.pem
│ │ │ │ │ ├── ec_256_prv.pem
│ │ │ │ │ ├── ec_256_pub.pem
│ │ │ │ │ ├── ec_384_prv.pem
│ │ │ │ │ ├── ec_384_pub.pem
│ │ │ │ │ ├── ec_521_prv.pem
│ │ │ │ │ ├── ec_521_pub.pem
│ │ │ │ │ ├── ec_bp256_prv.pem
│ │ │ │ │ ├── ec_bp256_pub.pem
│ │ │ │ │ ├── ec_bp384_prv.pem
│ │ │ │ │ ├── ec_bp384_pub.pem
│ │ │ │ │ ├── ec_bp512_prv.pem
│ │ │ │ │ ├── ec_bp512_pub.pem
│ │ │ │ │ ├── ec_prv.noopt.der
│ │ │ │ │ ├── ec_prv.pk8.der
│ │ │ │ │ ├── ec_prv.pk8.pem
│ │ │ │ │ ├── ec_prv.pk8.pw.der
│ │ │ │ │ ├── ec_prv.pk8.pw.pem
│ │ │ │ │ ├── ec_prv.sec1.der
│ │ │ │ │ ├── ec_prv.sec1.pem
│ │ │ │ │ ├── ec_prv.sec1.pw.pem
│ │ │ │ │ ├── ec_prv.specdom.der
│ │ │ │ │ ├── ec_pub.der
│ │ │ │ │ ├── ec_pub.pem
│ │ │ │ │ ├── enco-ca-prstr.pem
│ │ │ │ │ ├── enco-cert-utf8str.pem
│ │ │ │ │ ├── format_gen.key
│ │ │ │ │ ├── format_gen.pub
│ │ │ │ │ ├── format_pkcs12.fmt
│ │ │ │ │ ├── format_rsa.key
│ │ │ │ │ ├── hash_file_1
│ │ │ │ │ ├── hash_file_2
│ │ │ │ │ ├── hash_file_3
│ │ │ │ │ ├── hash_file_4
│ │ │ │ │ ├── hash_file_5
│ │ │ │ │ ├── keyUsage.decipherOnly.crt
│ │ │ │ │ ├── keyfile
│ │ │ │ │ ├── keyfile.3des
│ │ │ │ │ ├── keyfile.aes128
│ │ │ │ │ ├── keyfile.aes192
│ │ │ │ │ ├── keyfile.aes256
│ │ │ │ │ ├── keyfile.des
│ │ │ │ │ ├── mpi_10
│ │ │ │ │ ├── mpi_too_big
│ │ │ │ │ ├── passwd.psk
│ │ │ │ │ ├── pkcs8_pbe_sha1_2des.key
│ │ │ │ │ ├── pkcs8_pbe_sha1_3des.der
│ │ │ │ │ ├── pkcs8_pbe_sha1_3des.key
│ │ │ │ │ ├── pkcs8_pbe_sha1_rc4_128.key
│ │ │ │ │ ├── pkcs8_pbes2_pbkdf2_3des.der
│ │ │ │ │ ├── pkcs8_pbes2_pbkdf2_3des.key
│ │ │ │ │ ├── pkcs8_pbes2_pbkdf2_des.key
│ │ │ │ │ ├── print_c.pl
│ │ │ │ │ ├── rsa4096_prv.pem
│ │ │ │ │ ├── rsa4096_pub.pem
│ │ │ │ │ ├── server1-nospace.crt
│ │ │ │ │ ├── server1-v1.crt
│ │ │ │ │ ├── server1.cert_type.crt
│ │ │ │ │ ├── server1.crt
│ │ │ │ │ ├── server1.ext_ku.crt
│ │ │ │ │ ├── server1.key
│ │ │ │ │ ├── server1.key_usage.crt
│ │ │ │ │ ├── server1.pubkey
│ │ │ │ │ ├── server1.req.cert_type
│ │ │ │ │ ├── server1.req.key_usage
│ │ │ │ │ ├── server1.req.ku-ct
│ │ │ │ │ ├── server1.req.md4
│ │ │ │ │ ├── server1.req.md5
│ │ │ │ │ ├── server1.req.sha1
│ │ │ │ │ ├── server1.req.sha224
│ │ │ │ │ ├── server1.req.sha256
│ │ │ │ │ ├── server1.req.sha384
│ │ │ │ │ ├── server1.req.sha512
│ │ │ │ │ ├── server1.v1.crt
│ │ │ │ │ ├── server10.key
│ │ │ │ │ ├── server10_int3_int-ca2.crt
│ │ │ │ │ ├── server10_int3_int-ca2_ca.crt
│ │ │ │ │ ├── server1_ca.crt
│ │ │ │ │ ├── server2-badsign.crt
│ │ │ │ │ ├── server2-sha256.crt
│ │ │ │ │ ├── server2-v1-chain.crt
│ │ │ │ │ ├── server2-v1.crt
│ │ │ │ │ ├── server2.crt
│ │ │ │ │ ├── server2.key
│ │ │ │ │ ├── server2.ku-ds.crt
│ │ │ │ │ ├── server2.ku-ds_ke.crt
│ │ │ │ │ ├── server2.ku-ka.crt
│ │ │ │ │ ├── server2.ku-ke.crt
│ │ │ │ │ ├── server3.crt
│ │ │ │ │ ├── server3.key
│ │ │ │ │ ├── server4.crt
│ │ │ │ │ ├── server4.key
│ │ │ │ │ ├── server5-badsign.crt
│ │ │ │ │ ├── server5-der0.crt
│ │ │ │ │ ├── server5-der1a.crt
│ │ │ │ │ ├── server5-der1b.crt
│ │ │ │ │ ├── server5-der2.crt
│ │ │ │ │ ├── server5-der4.crt
│ │ │ │ │ ├── server5-der8.crt
│ │ │ │ │ ├── server5-der9.crt
│ │ │ │ │ ├── server5-expired.crt
│ │ │ │ │ ├── server5-future.crt
│ │ │ │ │ ├── server5-selfsigned.crt
│ │ │ │ │ ├── server5-sha1.crt
│ │ │ │ │ ├── server5-sha224.crt
│ │ │ │ │ ├── server5-sha384.crt
│ │ │ │ │ ├── server5-sha512.crt
│ │ │ │ │ ├── server5.crt
│ │ │ │ │ ├── server5.eku-cli.crt
│ │ │ │ │ ├── server5.eku-cs.crt
│ │ │ │ │ ├── server5.eku-cs_any.crt
│ │ │ │ │ ├── server5.eku-srv.crt
│ │ │ │ │ ├── server5.eku-srv_cli.crt
│ │ │ │ │ ├── server5.key
│ │ │ │ │ ├── server5.ku-ds.crt
│ │ │ │ │ ├── server5.ku-ka.crt
│ │ │ │ │ ├── server5.ku-ke.crt
│ │ │ │ │ ├── server5.req.ku.sha1
│ │ │ │ │ ├── server5.req.sha1
│ │ │ │ │ ├── server5.req.sha224
│ │ │ │ │ ├── server5.req.sha256
│ │ │ │ │ ├── server5.req.sha384
│ │ │ │ │ ├── server5.req.sha512
│ │ │ │ │ ├── server6-ss-child.crt
│ │ │ │ │ ├── server6.crt
│ │ │ │ │ ├── server6.key
│ │ │ │ │ ├── server7.crt
│ │ │ │ │ ├── server7.key
│ │ │ │ │ ├── server7_all_space.crt
│ │ │ │ │ ├── server7_int-ca.crt
│ │ │ │ │ ├── server7_int-ca_ca2.crt
│ │ │ │ │ ├── server7_pem_space.crt
│ │ │ │ │ ├── server7_trailing_space.crt
│ │ │ │ │ ├── server8.crt
│ │ │ │ │ ├── server8.key
│ │ │ │ │ ├── server8_int-ca2.crt
│ │ │ │ │ ├── server9-bad-mgfhash.crt
│ │ │ │ │ ├── server9-bad-saltlen.crt
│ │ │ │ │ ├── server9-badsign.crt
│ │ │ │ │ ├── server9-defaults.crt
│ │ │ │ │ ├── server9-sha224.crt
│ │ │ │ │ ├── server9-sha256.crt
│ │ │ │ │ ├── server9-sha384.crt
│ │ │ │ │ ├── server9-sha512.crt
│ │ │ │ │ ├── server9-with-ca.crt
│ │ │ │ │ ├── server9.crt
│ │ │ │ │ ├── server9.key
│ │ │ │ │ ├── server9.req.sha1
│ │ │ │ │ ├── server9.req.sha224
│ │ │ │ │ ├── server9.req.sha256
│ │ │ │ │ ├── server9.req.sha384
│ │ │ │ │ ├── server9.req.sha512
│ │ │ │ │ ├── test-ca-sha1.crt
│ │ │ │ │ ├── test-ca-sha256.crt
│ │ │ │ │ ├── test-ca-v1.crt
│ │ │ │ │ ├── test-ca.crt
│ │ │ │ │ ├── test-ca.key
│ │ │ │ │ ├── test-ca.opensslconf
│ │ │ │ │ ├── test-ca2.crt
│ │ │ │ │ ├── test-ca2.key
│ │ │ │ │ ├── test-ca2.ku-crl.crt
│ │ │ │ │ ├── test-ca2.ku-crt.crt
│ │ │ │ │ ├── test-ca2.ku-crt_crl.crt
│ │ │ │ │ ├── test-ca2.ku-ds.crt
│ │ │ │ │ ├── test-ca2_cat-future-invalid.crt
│ │ │ │ │ ├── test-ca2_cat-future-present.crt
│ │ │ │ │ ├── test-ca2_cat-past-invalid.crt
│ │ │ │ │ ├── test-ca2_cat-past-present.crt
│ │ │ │ │ ├── test-ca2_cat-present-future.crt
│ │ │ │ │ ├── test-ca2_cat-present-past.crt
│ │ │ │ │ ├── test-ca_cat12.crt
│ │ │ │ │ ├── test-ca_cat21.crt
│ │ │ │ │ ├── test-int-ca.crt
│ │ │ │ │ ├── test-int-ca.key
│ │ │ │ │ ├── test-int-ca2.crt
│ │ │ │ │ ├── test-int-ca2.key
│ │ │ │ │ ├── test-int-ca3.crt
│ │ │ │ │ └── test-int-ca3.key
│ │ │ │ ├── git-scripts/
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── pre-push.sh
│ │ │ │ ├── scripts/
│ │ │ │ │ ├── all.sh
│ │ │ │ │ ├── basic-build-test.sh
│ │ │ │ │ ├── check-doxy-blocks.pl
│ │ │ │ │ ├── check-generated-files.sh
│ │ │ │ │ ├── check-names.sh
│ │ │ │ │ ├── curves.pl
│ │ │ │ │ ├── doxygen.sh
│ │ │ │ │ ├── gen_ctr_drbg.pl
│ │ │ │ │ ├── gen_gcm_decrypt.pl
│ │ │ │ │ ├── gen_gcm_encrypt.pl
│ │ │ │ │ ├── gen_pkcs1_v21_sign_verify.pl
│ │ │ │ │ ├── generate-afl-tests.sh
│ │ │ │ │ ├── generate_code.pl
│ │ │ │ │ ├── key-exchanges.pl
│ │ │ │ │ ├── list-enum-consts.pl
│ │ │ │ │ ├── list-identifiers.sh
│ │ │ │ │ ├── list-macros.sh
│ │ │ │ │ ├── list-symbols.sh
│ │ │ │ │ ├── recursion.pl
│ │ │ │ │ ├── run-test-suites.pl
│ │ │ │ │ ├── tcp_client.pl
│ │ │ │ │ ├── test-ref-configs.pl
│ │ │ │ │ ├── travis-log-failure.sh
│ │ │ │ │ └── yotta-build.sh
│ │ │ │ ├── ssl-opt.sh
│ │ │ │ └── suites/
│ │ │ │ ├── helpers.function
│ │ │ │ ├── main_test.function
│ │ │ │ ├── test_suite_aes.cbc.data
│ │ │ │ ├── test_suite_aes.cfb.data
│ │ │ │ ├── test_suite_aes.ecb.data
│ │ │ │ ├── test_suite_aes.function
│ │ │ │ ├── test_suite_aes.rest.data
│ │ │ │ ├── test_suite_arc4.data
│ │ │ │ ├── test_suite_arc4.function
│ │ │ │ ├── test_suite_asn1write.data
│ │ │ │ ├── test_suite_asn1write.function
│ │ │ │ ├── test_suite_base64.data
│ │ │ │ ├── test_suite_base64.function
│ │ │ │ ├── test_suite_blowfish.data
│ │ │ │ ├── test_suite_blowfish.function
│ │ │ │ ├── test_suite_camellia.data
│ │ │ │ ├── test_suite_camellia.function
│ │ │ │ ├── test_suite_ccm.data
│ │ │ │ ├── test_suite_ccm.function
│ │ │ │ ├── test_suite_cipher.aes.data
│ │ │ │ ├── test_suite_cipher.arc4.data
│ │ │ │ ├── test_suite_cipher.blowfish.data
│ │ │ │ ├── test_suite_cipher.camellia.data
│ │ │ │ ├── test_suite_cipher.ccm.data
│ │ │ │ ├── test_suite_cipher.des.data
│ │ │ │ ├── test_suite_cipher.function
│ │ │ │ ├── test_suite_cipher.gcm.data
│ │ │ │ ├── test_suite_cipher.null.data
│ │ │ │ ├── test_suite_cipher.padding.data
│ │ │ │ ├── test_suite_cmac.data
│ │ │ │ ├── test_suite_cmac.function
│ │ │ │ ├── test_suite_ctr_drbg.data
│ │ │ │ ├── test_suite_ctr_drbg.function
│ │ │ │ ├── test_suite_debug.data
│ │ │ │ ├── test_suite_debug.function
│ │ │ │ ├── test_suite_des.data
│ │ │ │ ├── test_suite_des.function
│ │ │ │ ├── test_suite_dhm.data
│ │ │ │ ├── test_suite_dhm.function
│ │ │ │ ├── test_suite_ecdh.data
│ │ │ │ ├── test_suite_ecdh.function
│ │ │ │ ├── test_suite_ecdsa.data
│ │ │ │ ├── test_suite_ecdsa.function
│ │ │ │ ├── test_suite_ecjpake.data
│ │ │ │ ├── test_suite_ecjpake.function
│ │ │ │ ├── test_suite_ecp.data
│ │ │ │ ├── test_suite_ecp.function
│ │ │ │ ├── test_suite_entropy.data
│ │ │ │ ├── test_suite_entropy.function
│ │ │ │ ├── test_suite_error.data
│ │ │ │ ├── test_suite_error.function
│ │ │ │ ├── test_suite_gcm.aes128_de.data
│ │ │ │ ├── test_suite_gcm.aes128_en.data
│ │ │ │ ├── test_suite_gcm.aes192_de.data
│ │ │ │ ├── test_suite_gcm.aes192_en.data
│ │ │ │ ├── test_suite_gcm.aes256_de.data
│ │ │ │ ├── test_suite_gcm.aes256_en.data
│ │ │ │ ├── test_suite_gcm.camellia.data
│ │ │ │ ├── test_suite_gcm.function
│ │ │ │ ├── test_suite_hmac_drbg.function
│ │ │ │ ├── test_suite_hmac_drbg.misc.data
│ │ │ │ ├── test_suite_hmac_drbg.no_reseed.data
│ │ │ │ ├── test_suite_hmac_drbg.nopr.data
│ │ │ │ ├── test_suite_hmac_drbg.pr.data
│ │ │ │ ├── test_suite_md.data
│ │ │ │ ├── test_suite_md.function
│ │ │ │ ├── test_suite_mdx.data
│ │ │ │ ├── test_suite_mdx.function
│ │ │ │ ├── test_suite_memory_buffer_alloc.data
│ │ │ │ ├── test_suite_memory_buffer_alloc.function
│ │ │ │ ├── test_suite_mpi.data
│ │ │ │ ├── test_suite_mpi.function
│ │ │ │ ├── test_suite_pem.data
│ │ │ │ ├── test_suite_pem.function
│ │ │ │ ├── test_suite_pk.data
│ │ │ │ ├── test_suite_pk.function
│ │ │ │ ├── test_suite_pkcs1_v15.data
│ │ │ │ ├── test_suite_pkcs1_v15.function
│ │ │ │ ├── test_suite_pkcs1_v21.data
│ │ │ │ ├── test_suite_pkcs1_v21.function
│ │ │ │ ├── test_suite_pkcs5.data
│ │ │ │ ├── test_suite_pkcs5.function
│ │ │ │ ├── test_suite_pkparse.data
│ │ │ │ ├── test_suite_pkparse.function
│ │ │ │ ├── test_suite_pkwrite.data
│ │ │ │ ├── test_suite_pkwrite.function
│ │ │ │ ├── test_suite_rsa.data
│ │ │ │ ├── test_suite_rsa.function
│ │ │ │ ├── test_suite_shax.data
│ │ │ │ ├── test_suite_shax.function
│ │ │ │ ├── test_suite_ssl.data
│ │ │ │ ├── test_suite_ssl.function
│ │ │ │ ├── test_suite_timing.data
│ │ │ │ ├── test_suite_timing.function
│ │ │ │ ├── test_suite_version.data
│ │ │ │ ├── test_suite_version.function
│ │ │ │ ├── test_suite_x509parse.data
│ │ │ │ ├── test_suite_x509parse.function
│ │ │ │ ├── test_suite_x509write.data
│ │ │ │ ├── test_suite_x509write.function
│ │ │ │ ├── test_suite_xtea.data
│ │ │ │ └── test_suite_xtea.function
│ │ │ ├── visualc/
│ │ │ │ └── VS2010/
│ │ │ │ ├── aescrypt2.vcxproj
│ │ │ │ ├── benchmark.vcxproj
│ │ │ │ ├── cert_app.vcxproj
│ │ │ │ ├── cert_req.vcxproj
│ │ │ │ ├── cert_write.vcxproj
│ │ │ │ ├── crl_app.vcxproj
│ │ │ │ ├── crypt_and_hash.vcxproj
│ │ │ │ ├── dh_client.vcxproj
│ │ │ │ ├── dh_genprime.vcxproj
│ │ │ │ ├── dh_server.vcxproj
│ │ │ │ ├── dtls_client.vcxproj
│ │ │ │ ├── dtls_server.vcxproj
│ │ │ │ ├── ecdh_curve25519.vcxproj
│ │ │ │ ├── ecdsa.vcxproj
│ │ │ │ ├── gen_entropy.vcxproj
│ │ │ │ ├── gen_key.vcxproj
│ │ │ │ ├── gen_random_ctr_drbg.vcxproj
│ │ │ │ ├── gen_random_havege.vcxproj
│ │ │ │ ├── generic_sum.vcxproj
│ │ │ │ ├── hello.vcxproj
│ │ │ │ ├── key_app.vcxproj
│ │ │ │ ├── key_app_writer.vcxproj
│ │ │ │ ├── mbedTLS.sln
│ │ │ │ ├── mbedTLS.vcxproj
│ │ │ │ ├── md5sum.vcxproj
│ │ │ │ ├── mini_client.vcxproj
│ │ │ │ ├── mpi_demo.vcxproj
│ │ │ │ ├── pem2der.vcxproj
│ │ │ │ ├── pk_decrypt.vcxproj
│ │ │ │ ├── pk_encrypt.vcxproj
│ │ │ │ ├── pk_sign.vcxproj
│ │ │ │ ├── pk_verify.vcxproj
│ │ │ │ ├── req_app.vcxproj
│ │ │ │ ├── rsa_decrypt.vcxproj
│ │ │ │ ├── rsa_encrypt.vcxproj
│ │ │ │ ├── rsa_genkey.vcxproj
│ │ │ │ ├── rsa_sign.vcxproj
│ │ │ │ ├── rsa_sign_pss.vcxproj
│ │ │ │ ├── rsa_verify.vcxproj
│ │ │ │ ├── rsa_verify_pss.vcxproj
│ │ │ │ ├── selftest.vcxproj
│ │ │ │ ├── sha1sum.vcxproj
│ │ │ │ ├── sha2sum.vcxproj
│ │ │ │ ├── ssl_cert_test.vcxproj
│ │ │ │ ├── ssl_client1.vcxproj
│ │ │ │ ├── ssl_client2.vcxproj
│ │ │ │ ├── ssl_fork_server.vcxproj
│ │ │ │ ├── ssl_mail_client.vcxproj
│ │ │ │ ├── ssl_server.vcxproj
│ │ │ │ ├── ssl_server2.vcxproj
│ │ │ │ ├── strerror.vcxproj
│ │ │ │ └── udp_proxy.vcxproj
│ │ │ └── yotta/
│ │ │ ├── .gitignore
│ │ │ ├── create-module.sh
│ │ │ └── data/
│ │ │ ├── README.md
│ │ │ ├── adjust-config.sh
│ │ │ ├── entropy_hardware_poll.c
│ │ │ ├── example-authcrypt/
│ │ │ │ ├── README.md
│ │ │ │ └── main.cpp
│ │ │ ├── example-benchmark/
│ │ │ │ ├── README.md
│ │ │ │ └── main.cpp
│ │ │ ├── example-hashing/
│ │ │ │ ├── README.md
│ │ │ │ └── main.cpp
│ │ │ ├── example-selftest/
│ │ │ │ ├── README.md
│ │ │ │ └── main.cpp
│ │ │ ├── module.json
│ │ │ └── target_config.h
│ │ └── mbedtls_port/
│ │ ├── dtls_interface.c
│ │ ├── dtls_interface.h
│ │ ├── entropy_hardware_poll.c
│ │ ├── los_mbedtls_config.h
│ │ ├── los_mbedtls_config_cert.h
│ │ ├── los_mbedtls_config_psk.h
│ │ ├── net_sockets_alt.c
│ │ ├── timing_alt.c
│ │ └── timing_alt.h
│ ├── demos/
│ │ ├── agenttiny_lwm2m/
│ │ │ ├── agent_tiny_cmd_ioctl.c
│ │ │ ├── agent_tiny_cmd_ioctl.h
│ │ │ ├── agent_tiny_demo.c
│ │ │ └── agent_tiny_demo.h
│ │ ├── agenttiny_mqtt/
│ │ │ ├── agent_tiny_demo.c
│ │ │ └── agent_tiny_demo.h
│ │ ├── dtls_server/
│ │ │ ├── test_dtls_server.c
│ │ │ └── test_dtls_server.h
│ │ ├── fs/
│ │ │ ├── fatfs_demo.c
│ │ │ ├── fs_common.c
│ │ │ ├── fs_common.h
│ │ │ └── spiffs_demo.c
│ │ ├── ipv6_client/
│ │ │ └── client_demo.c
│ │ ├── kernel/
│ │ │ ├── api/
│ │ │ │ ├── los_api_dynamic_mem.c
│ │ │ │ ├── los_api_event.c
│ │ │ │ ├── los_api_interrupt.c
│ │ │ │ ├── los_api_list.c
│ │ │ │ ├── los_api_msgqueue.c
│ │ │ │ ├── los_api_mutex.c
│ │ │ │ ├── los_api_sem.c
│ │ │ │ ├── los_api_static_mem.c
│ │ │ │ ├── los_api_systick.c
│ │ │ │ ├── los_api_task.c
│ │ │ │ ├── los_api_timer.c
│ │ │ │ ├── los_demo_entry.c
│ │ │ │ └── los_inspect_entry.c
│ │ │ └── include/
│ │ │ ├── los_api_dynamic_mem.h
│ │ │ ├── los_api_event.h
│ │ │ ├── los_api_interrupt.h
│ │ │ ├── los_api_list.h
│ │ │ ├── los_api_msgqueue.h
│ │ │ ├── los_api_mutex.h
│ │ │ ├── los_api_sem.h
│ │ │ ├── los_api_static_mem.h
│ │ │ ├── los_api_systick.h
│ │ │ ├── los_api_task.h
│ │ │ ├── los_api_timer.h
│ │ │ ├── los_demo_debug.h
│ │ │ ├── los_demo_entry.h
│ │ │ └── los_inspect_entry.h
│ │ └── nbiot_without_atiny/
│ │ ├── nb_demo.c
│ │ └── sota_demo.c
│ ├── doc/
│ │ ├── Huawei_LiteOS_Developer_Guide_en.md
│ │ ├── Huawei_LiteOS_Developer_Guide_zh.md
│ │ ├── Huawei_LiteOS_SDK_Coap_LwM2M_Developer_Guide_en.md
│ │ ├── Huawei_LiteOS_SDK_Coap_LwM2M_Developer_Guide_zh.md
│ │ ├── Huawei_LiteOS_SDK_Developer_Guide.md
│ │ ├── Huawei_LiteOS_SDK_MQTT_Developer_Guide.md
│ │ ├── LiteOS_Code_Info.md
│ │ ├── LiteOS_Commit_Message.md
│ │ ├── LiteOS_Contribute_Guide_GitGUI.md
│ │ ├── LiteOS_Supported_board_list.md
│ │ └── meta/
│ │ ├── DevGuide/
│ │ │ └── readme.md
│ │ └── guides/
│ │ └── readme.md
│ ├── include/
│ │ ├── at_device/
│ │ │ └── bc95.h
│ │ ├── at_frame/
│ │ │ ├── at_api.h
│ │ │ └── at_main.h
│ │ ├── atiny_error.h
│ │ ├── atiny_lwm2m/
│ │ │ └── agenttiny.h
│ │ ├── atiny_mqtt/
│ │ │ └── mqtt_client.h
│ │ ├── fs/
│ │ │ ├── los_devfs.h
│ │ │ ├── los_fatfs.h
│ │ │ ├── los_kifs.h
│ │ │ ├── los_ramfs.h
│ │ │ ├── los_spiffs.h
│ │ │ ├── los_vfs.h
│ │ │ └── sys/
│ │ │ ├── errno.h
│ │ │ ├── fcntl.h
│ │ │ └── stat.h
│ │ ├── log/
│ │ │ └── atiny_log.h
│ │ ├── nb_iot/
│ │ │ └── los_nb_api.h
│ │ ├── osdepends/
│ │ │ └── atiny_osdep.h
│ │ ├── ota/
│ │ │ ├── hwpatch_errno.h
│ │ │ ├── ota_api.h
│ │ │ ├── package.h
│ │ │ └── recover_image.h
│ │ ├── sal/
│ │ │ └── atiny_socket.h
│ │ └── sota/
│ │ └── sota.h
│ ├── kernel/
│ │ ├── Makefile
│ │ ├── base/
│ │ │ ├── Makefile
│ │ │ ├── core/
│ │ │ │ ├── Makefile
│ │ │ │ ├── los_priqueue.c
│ │ │ │ ├── los_priqueue.inc
│ │ │ │ ├── los_swtmr.c
│ │ │ │ ├── los_swtmr.inc
│ │ │ │ ├── los_sys.c
│ │ │ │ ├── los_sys.inc
│ │ │ │ ├── los_task.c
│ │ │ │ ├── los_task.inc
│ │ │ │ ├── los_tick.c
│ │ │ │ ├── los_tick.inc
│ │ │ │ ├── los_timeslice.c
│ │ │ │ └── los_timeslice.inc
│ │ │ ├── include/
│ │ │ │ ├── los_base.ph
│ │ │ │ ├── los_err.ph
│ │ │ │ ├── los_event.ph
│ │ │ │ ├── los_heap.ph
│ │ │ │ ├── los_list.ph
│ │ │ │ ├── los_membox.ph
│ │ │ │ ├── los_memcheck.ph
│ │ │ │ ├── los_memory.ph
│ │ │ │ ├── los_memstat.ph
│ │ │ │ ├── los_multipledlinkhead.ph
│ │ │ │ ├── los_mux.ph
│ │ │ │ ├── los_printf.ph
│ │ │ │ ├── los_priqueue.ph
│ │ │ │ ├── los_queue.ph
│ │ │ │ ├── los_sem.ph
│ │ │ │ ├── los_slab.ph
│ │ │ │ ├── los_swtmr.ph
│ │ │ │ ├── los_sys.ph
│ │ │ │ ├── los_task.ph
│ │ │ │ ├── los_tick.ph
│ │ │ │ ├── los_timeslice.ph
│ │ │ │ └── los_typedef.ph
│ │ │ ├── ipc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── los_event.c
│ │ │ │ ├── los_event.inc
│ │ │ │ ├── los_mux.c
│ │ │ │ ├── los_mux.inc
│ │ │ │ ├── los_queue.c
│ │ │ │ ├── los_queue.inc
│ │ │ │ ├── los_sem.c
│ │ │ │ └── los_sem.inc
│ │ │ ├── mem/
│ │ │ │ ├── Makefile
│ │ │ │ ├── bestfit/
│ │ │ │ │ ├── los_memory.c
│ │ │ │ │ ├── los_memory.inc
│ │ │ │ │ ├── los_multipledlinkhead.c
│ │ │ │ │ └── los_multipledlinkhead.inc
│ │ │ │ ├── bestfit_little/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── los_heap.c
│ │ │ │ │ └── los_memory.c
│ │ │ │ ├── common/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── los_memcheck.c
│ │ │ │ │ ├── los_memstat.c
│ │ │ │ │ ├── los_memstat.inc
│ │ │ │ │ ├── los_slab.c
│ │ │ │ │ └── los_slabmem.c
│ │ │ │ ├── membox/
│ │ │ │ │ └── los_membox.c
│ │ │ │ └── tlsf/
│ │ │ │ ├── Makefile
│ │ │ │ └── los_memory.c
│ │ │ ├── misc/
│ │ │ │ ├── Makefile
│ │ │ │ └── los_misc.c
│ │ │ └── om/
│ │ │ ├── Makefile
│ │ │ ├── los_err.c
│ │ │ └── los_err.inc
│ │ ├── extended/
│ │ │ ├── Makefile
│ │ │ ├── include/
│ │ │ │ └── los_tickless.ph
│ │ │ └── tickless/
│ │ │ ├── los_tickless.c
│ │ │ └── los_tickless.inc
│ │ ├── include/
│ │ │ ├── los_base.h
│ │ │ ├── los_compiler.h
│ │ │ ├── los_config.h
│ │ │ ├── los_err.h
│ │ │ ├── los_errno.h
│ │ │ ├── los_event.h
│ │ │ ├── los_heap.h
│ │ │ ├── los_list.h
│ │ │ ├── los_membox.h
│ │ │ ├── los_memcheck.h
│ │ │ ├── los_memory.h
│ │ │ ├── los_mux.h
│ │ │ ├── los_queue.h
│ │ │ ├── los_sem.h
│ │ │ ├── los_slab.h
│ │ │ ├── los_swtmr.h
│ │ │ ├── los_sys.h
│ │ │ ├── los_task.h
│ │ │ ├── los_tick.h
│ │ │ ├── los_tickless.h
│ │ │ └── los_typedef.h
│ │ └── los_init.c
│ ├── osdepends/
│ │ └── liteos/
│ │ ├── atiny_osdep.c
│ │ └── cmsis/
│ │ ├── 1.0/
│ │ │ ├── cmsis_liteos1.c
│ │ │ └── cmsis_os1.h
│ │ ├── 2.0/
│ │ │ ├── cmsis_liteos2.c
│ │ │ └── cmsis_os2.h
│ │ ├── Makefile
│ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ ├── cmsis_liteos.c
│ │ └── cmsis_os.h
│ ├── targets/
│ │ ├── Cloud_STM32F429IGTx_FIRE/
│ │ │ ├── Drivers/
│ │ │ │ ├── STM32F4xx_HAL_Driver/
│ │ │ │ │ ├── Inc/
│ │ │ │ │ │ ├── Legacy/
│ │ │ │ │ │ │ ├── stm32_hal_legacy.h
│ │ │ │ │ │ │ └── stm32f4xx_hal_can_legacy.h
│ │ │ │ │ │ ├── stm32_assert_template.h
│ │ │ │ │ │ ├── stm32f4xx_hal.h
│ │ │ │ │ │ ├── stm32f4xx_hal_adc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_adc_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_can.h
│ │ │ │ │ │ ├── stm32f4xx_hal_cec.h
│ │ │ │ │ │ ├── stm32f4xx_hal_conf_template.h
│ │ │ │ │ │ ├── stm32f4xx_hal_cortex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_crc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_cryp.h
│ │ │ │ │ │ ├── stm32f4xx_hal_cryp_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dac.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dac_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dcmi.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dcmi_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_def.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dfsdm.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dma.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dma2d.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dma_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_dsi.h
│ │ │ │ │ │ ├── stm32f4xx_hal_eth.h
│ │ │ │ │ │ ├── stm32f4xx_hal_flash.h
│ │ │ │ │ │ ├── stm32f4xx_hal_flash_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_flash_ramfunc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_fmpi2c.h
│ │ │ │ │ │ ├── stm32f4xx_hal_fmpi2c_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_gpio.h
│ │ │ │ │ │ ├── stm32f4xx_hal_gpio_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_hash.h
│ │ │ │ │ │ ├── stm32f4xx_hal_hash_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_hcd.h
│ │ │ │ │ │ ├── stm32f4xx_hal_i2c.h
│ │ │ │ │ │ ├── stm32f4xx_hal_i2c_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_i2s.h
│ │ │ │ │ │ ├── stm32f4xx_hal_i2s_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_irda.h
│ │ │ │ │ │ ├── stm32f4xx_hal_iwdg.h
│ │ │ │ │ │ ├── stm32f4xx_hal_lptim.h
│ │ │ │ │ │ ├── stm32f4xx_hal_ltdc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_ltdc_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_mmc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_nand.h
│ │ │ │ │ │ ├── stm32f4xx_hal_nor.h
│ │ │ │ │ │ ├── stm32f4xx_hal_pccard.h
│ │ │ │ │ │ ├── stm32f4xx_hal_pcd.h
│ │ │ │ │ │ ├── stm32f4xx_hal_pcd_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_pwr.h
│ │ │ │ │ │ ├── stm32f4xx_hal_pwr_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_qspi.h
│ │ │ │ │ │ ├── stm32f4xx_hal_rcc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_rcc_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_rng.h
│ │ │ │ │ │ ├── stm32f4xx_hal_rtc.h
│ │ │ │ │ │ ├── stm32f4xx_hal_rtc_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_sai.h
│ │ │ │ │ │ ├── stm32f4xx_hal_sai_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_sd.h
│ │ │ │ │ │ ├── stm32f4xx_hal_sdram.h
│ │ │ │ │ │ ├── stm32f4xx_hal_smartcard.h
│ │ │ │ │ │ ├── stm32f4xx_hal_spdifrx.h
│ │ │ │ │ │ ├── stm32f4xx_hal_spi.h
│ │ │ │ │ │ ├── stm32f4xx_hal_sram.h
│ │ │ │ │ │ ├── stm32f4xx_hal_tim.h
│ │ │ │ │ │ ├── stm32f4xx_hal_tim_ex.h
│ │ │ │ │ │ ├── stm32f4xx_hal_uart.h
│ │ │ │ │ │ ├── stm32f4xx_hal_usart.h
│ │ │ │ │ │ └── stm32f4xx_hal_wwdg.h
│ │ │ │ │ └── Src/
│ │ │ │ │ ├── stm32f4xx_hal.c
│ │ │ │ │ ├── stm32f4xx_hal_adc.c
│ │ │ │ │ ├── stm32f4xx_hal_adc_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_can.c
│ │ │ │ │ ├── stm32f4xx_hal_cec.c
│ │ │ │ │ ├── stm32f4xx_hal_cortex.c
│ │ │ │ │ ├── stm32f4xx_hal_crc.c
│ │ │ │ │ ├── stm32f4xx_hal_cryp.c
│ │ │ │ │ ├── stm32f4xx_hal_cryp_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_dac.c
│ │ │ │ │ ├── stm32f4xx_hal_dac_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_dcmi.c
│ │ │ │ │ ├── stm32f4xx_hal_dcmi_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_dfsdm.c
│ │ │ │ │ ├── stm32f4xx_hal_dma.c
│ │ │ │ │ ├── stm32f4xx_hal_dma2d.c
│ │ │ │ │ ├── stm32f4xx_hal_dma_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_dsi.c
│ │ │ │ │ ├── stm32f4xx_hal_eth.c
│ │ │ │ │ ├── stm32f4xx_hal_flash.c
│ │ │ │ │ ├── stm32f4xx_hal_flash_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_flash_ramfunc.c
│ │ │ │ │ ├── stm32f4xx_hal_fmpi2c.c
│ │ │ │ │ ├── stm32f4xx_hal_fmpi2c_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_gpio.c
│ │ │ │ │ ├── stm32f4xx_hal_hash.c
│ │ │ │ │ ├── stm32f4xx_hal_hash_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_hcd.c
│ │ │ │ │ ├── stm32f4xx_hal_i2c.c
│ │ │ │ │ ├── stm32f4xx_hal_i2c_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_i2s.c
│ │ │ │ │ ├── stm32f4xx_hal_i2s_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_irda.c
│ │ │ │ │ ├── stm32f4xx_hal_iwdg.c
│ │ │ │ │ ├── stm32f4xx_hal_lptim.c
│ │ │ │ │ ├── stm32f4xx_hal_ltdc.c
│ │ │ │ │ ├── stm32f4xx_hal_ltdc_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_mmc.c
│ │ │ │ │ ├── stm32f4xx_hal_msp_template.c
│ │ │ │ │ ├── stm32f4xx_hal_nand.c
│ │ │ │ │ ├── stm32f4xx_hal_nor.c
│ │ │ │ │ ├── stm32f4xx_hal_pccard.c
│ │ │ │ │ ├── stm32f4xx_hal_pcd.c
│ │ │ │ │ ├── stm32f4xx_hal_pcd_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_pwr.c
│ │ │ │ │ ├── stm32f4xx_hal_pwr_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_qspi.c
│ │ │ │ │ ├── stm32f4xx_hal_rcc.c
│ │ │ │ │ ├── stm32f4xx_hal_rcc_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_rng.c
│ │ │ │ │ ├── stm32f4xx_hal_rtc.c
│ │ │ │ │ ├── stm32f4xx_hal_rtc_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_sai.c
│ │ │ │ │ ├── stm32f4xx_hal_sai_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_sd.c
│ │ │ │ │ ├── stm32f4xx_hal_sdram.c
│ │ │ │ │ ├── stm32f4xx_hal_smartcard.c
│ │ │ │ │ ├── stm32f4xx_hal_spdifrx.c
│ │ │ │ │ ├── stm32f4xx_hal_spi.c
│ │ │ │ │ ├── stm32f4xx_hal_sram.c
│ │ │ │ │ ├── stm32f4xx_hal_tim.c
│ │ │ │ │ ├── stm32f4xx_hal_tim_ex.c
│ │ │ │ │ ├── stm32f4xx_hal_timebase_rtc_alarm_template.c
│ │ │ │ │ ├── stm32f4xx_hal_timebase_rtc_wakeup_template.c
│ │ │ │ │ ├── stm32f4xx_hal_timebase_tim_template.c
│ │ │ │ │ ├── stm32f4xx_hal_uart.c
│ │ │ │ │ ├── stm32f4xx_hal_usart.c
│ │ │ │ │ └── stm32f4xx_hal_wwdg.c
│ │ │ │ └── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ │ ├── EWARM/
│ │ │ │ ├── Huawei_LiteOS.ewd
│ │ │ │ ├── Huawei_LiteOS.ewp
│ │ │ │ ├── Huawei_LiteOS.eww
│ │ │ │ ├── STM32F429IGTx-LiteOS.icf
│ │ │ │ └── los_startup_iar.s
│ │ │ ├── GCC/
│ │ │ │ ├── Makefile
│ │ │ │ ├── Makefile_Sota
│ │ │ │ ├── STM32F429IGTx_LiteOS.ld
│ │ │ │ ├── STM32F429IGTx_LiteOS_bootloader.ld
│ │ │ │ ├── config.mk
│ │ │ │ ├── config_demos/
│ │ │ │ │ ├── config_bootloader.mk
│ │ │ │ │ ├── config_lwm2m.mk
│ │ │ │ │ ├── config_mqtt.mk
│ │ │ │ │ ├── config_sota.mk
│ │ │ │ │ └── config_sota_without_checksum.mk
│ │ │ │ ├── los_startup_gcc.s
│ │ │ │ └── prune.mk
│ │ │ ├── Hardware/
│ │ │ │ ├── Inc/
│ │ │ │ │ ├── hal_flash.h
│ │ │ │ │ ├── hal_iwdg.h
│ │ │ │ │ ├── hal_rng.h
│ │ │ │ │ └── hal_spi_flash.h
│ │ │ │ └── Src/
│ │ │ │ ├── hal_flash.c
│ │ │ │ ├── hal_iwdg.c
│ │ │ │ ├── hal_rng.c
│ │ │ │ └── hal_spi_flash.c
│ │ │ ├── Inc/
│ │ │ │ ├── at_hal.h
│ │ │ │ ├── board.h
│ │ │ │ ├── common.h
│ │ │ │ ├── dwt.h
│ │ │ │ ├── eth.h
│ │ │ │ ├── flash_adaptor.h
│ │ │ │ ├── main.h
│ │ │ │ ├── ota_port.h
│ │ │ │ ├── stm32f429xx.h
│ │ │ │ ├── stm32f4xx.h
│ │ │ │ ├── stm32f4xx_hal_conf.h
│ │ │ │ ├── sys_init.h
│ │ │ │ ├── system_stm32f4xx.h
│ │ │ │ └── usart.h
│ │ │ ├── Lib/
│ │ │ │ ├── hwpatch.lib
│ │ │ │ ├── hwpatch_iar.a
│ │ │ │ └── libhwpatch.a
│ │ │ ├── MDK-ARM/
│ │ │ │ ├── Huawei_LiteOS.uvoptx
│ │ │ │ ├── Huawei_LiteOS.uvprojx
│ │ │ │ ├── STM32F429IGTx-LiteOS.sct
│ │ │ │ └── los_startup_keil.s
│ │ │ ├── OS_CONFIG/
│ │ │ │ ├── los_builddef.h
│ │ │ │ ├── los_printf.h
│ │ │ │ └── target_config.h
│ │ │ └── Src/
│ │ │ ├── at_hal.c
│ │ │ ├── board.c
│ │ │ ├── bootloader_recover.c
│ │ │ ├── dwt.c
│ │ │ ├── eth.c
│ │ │ ├── fatfs_hal.c
│ │ │ ├── flash_adaptor.c
│ │ │ ├── main.c
│ │ │ ├── ota_port.c
│ │ │ ├── spiffs_hal.c
│ │ │ ├── sys_init.c
│ │ │ ├── system_stm32f4xx.c
│ │ │ ├── usart.c
│ │ │ └── user_task.c
│ │ ├── Mini_Project/
│ │ │ ├── cortex-m0plus_without_driver/
│ │ │ │ ├── GCC/
│ │ │ │ │ ├── LPC51U68_flash.ld
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── config.mk
│ │ │ │ │ ├── prune.mk
│ │ │ │ │ └── startup_LPC51U68.s
│ │ │ │ ├── Inc/
│ │ │ │ │ ├── __hal_simulate.h
│ │ │ │ │ ├── main.h
│ │ │ │ │ ├── ota_port.h
│ │ │ │ │ └── sys_init.h
│ │ │ │ ├── OS_CONFIG/
│ │ │ │ │ ├── los_builddef.h
│ │ │ │ │ ├── los_printf.h
│ │ │ │ │ └── target_config.h
│ │ │ │ └── Src/
│ │ │ │ ├── __hal_simulate.c
│ │ │ │ ├── main.c
│ │ │ │ └── user_task.c
│ │ │ ├── cortex-m3_without_driver/
│ │ │ │ ├── GCC/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── config.mk
│ │ │ │ │ ├── cortex-m3.ld
│ │ │ │ │ ├── los_startup_gcc.s
│ │ │ │ │ └── prune.mk
│ │ │ │ ├── Inc/
│ │ │ │ │ ├── __hal_simulate.h
│ │ │ │ │ ├── main.h
│ │ │ │ │ ├── ota_port.h
│ │ │ │ │ └── sys_init.h
│ │ │ │ ├── OS_CONFIG/
│ │ │ │ │ ├── los_builddef.h
│ │ │ │ │ ├── los_printf.h
│ │ │ │ │ └── target_config.h
│ │ │ │ └── Src/
│ │ │ │ ├── __hal_simulate.c
│ │ │ │ ├── main.c
│ │ │ │ └── user_task.c
│ │ │ └── cortex-m4_without_driver/
│ │ │ ├── GCC/
│ │ │ │ ├── Makefile
│ │ │ │ ├── config.mk
│ │ │ │ ├── cortex-m4.ld
│ │ │ │ ├── los_startup_gcc.s
│ │ │ │ └── prune.mk
│ │ │ ├── Inc/
│ │ │ │ ├── __hal_simulate.h
│ │ │ │ ├── main.h
│ │ │ │ ├── ota_port.h
│ │ │ │ └── sys_init.h
│ │ │ ├── Lib/
│ │ │ │ ├── hwpatch.lib
│ │ │ │ └── libhwpatch.a
│ │ │ ├── OS_CONFIG/
│ │ │ │ ├── los_builddef.h
│ │ │ │ ├── los_printf.h
│ │ │ │ └── target_config.h
│ │ │ ├── Src/
│ │ │ │ ├── __hal_simulate.c
│ │ │ │ ├── main.c
│ │ │ │ └── user_task.c
│ │ │ └── cortex-m4-without-driver.doc
│ │ ├── NXP_LPC51U68/
│ │ │ ├── Driver/
│ │ │ │ ├── LPC51U68/
│ │ │ │ │ ├── LPC51U68.h
│ │ │ │ │ ├── LPC51U68.xml
│ │ │ │ │ ├── LPC51U68_features.h
│ │ │ │ │ ├── cmsis_drivers/
│ │ │ │ │ │ ├── fsl_i2c_cmsis.c
│ │ │ │ │ │ ├── fsl_i2c_cmsis.h
│ │ │ │ │ │ ├── fsl_spi_cmsis.c
│ │ │ │ │ │ ├── fsl_spi_cmsis.h
│ │ │ │ │ │ ├── fsl_usart_cmsis.c
│ │ │ │ │ │ └── fsl_usart_cmsis.h
│ │ │ │ │ ├── drivers/
│ │ │ │ │ │ ├── fsl_adc.c
│ │ │ │ │ │ ├── fsl_adc.h
│ │ │ │ │ │ ├── fsl_clock.c
│ │ │ │ │ │ ├── fsl_clock.h
│ │ │ │ │ │ ├── fsl_common.c
│ │ │ │ │ │ ├── fsl_common.h
│ │ │ │ │ │ ├── fsl_crc.c
│ │ │ │ │ │ ├── fsl_crc.h
│ │ │ │ │ │ ├── fsl_ctimer.c
│ │ │ │ │ │ ├── fsl_ctimer.h
│ │ │ │ │ │ ├── fsl_dma.c
│ │ │ │ │ │ ├── fsl_dma.h
│ │ │ │ │ │ ├── fsl_flashiap.c
│ │ │ │ │ │ ├── fsl_flashiap.h
│ │ │ │ │ │ ├── fsl_flexcomm.c
│ │ │ │ │ │ ├── fsl_flexcomm.h
│ │ │ │ │ │ ├── fsl_fmeas.c
│ │ │ │ │ │ ├── fsl_fmeas.h
│ │ │ │ │ │ ├── fsl_gint.c
│ │ │ │ │ │ ├── fsl_gint.h
│ │ │ │ │ │ ├── fsl_gpio.c
│ │ │ │ │ │ ├── fsl_gpio.h
│ │ │ │ │ │ ├── fsl_i2c.c
│ │ │ │ │ │ ├── fsl_i2c.h
│ │ │ │ │ │ ├── fsl_i2c_dma.c
│ │ │ │ │ │ ├── fsl_i2c_dma.h
│ │ │ │ │ │ ├── fsl_i2s.c
│ │ │ │ │ │ ├── fsl_i2s.h
│ │ │ │ │ │ ├── fsl_i2s_dma.c
│ │ │ │ │ │ ├── fsl_i2s_dma.h
│ │ │ │ │ │ ├── fsl_inputmux.c
│ │ │ │ │ │ ├── fsl_inputmux.h
│ │ │ │ │ │ ├── fsl_inputmux_connections.h
│ │ │ │ │ │ ├── fsl_iocon.h
│ │ │ │ │ │ ├── fsl_mrt.c
│ │ │ │ │ │ ├── fsl_mrt.h
│ │ │ │ │ │ ├── fsl_pint.c
│ │ │ │ │ │ ├── fsl_pint.h
│ │ │ │ │ │ ├── fsl_power.c
│ │ │ │ │ │ ├── fsl_power.h
│ │ │ │ │ │ ├── fsl_reset.c
│ │ │ │ │ │ ├── fsl_reset.h
│ │ │ │ │ │ ├── fsl_rtc.c
│ │ │ │ │ │ ├── fsl_rtc.h
│ │ │ │ │ │ ├── fsl_sctimer.c
│ │ │ │ │ │ ├── fsl_sctimer.h
│ │ │ │ │ │ ├── fsl_spi.c
│ │ │ │ │ │ ├── fsl_spi.h
│ │ │ │ │ │ ├── fsl_spi_dma.c
│ │ │ │ │ │ ├── fsl_spi_dma.h
│ │ │ │ │ │ ├── fsl_usart.c
│ │ │ │ │ │ ├── fsl_usart.h
│ │ │ │ │ │ ├── fsl_usart_dma.c
│ │ │ │ │ │ ├── fsl_usart_dma.h
│ │ │ │ │ │ ├── fsl_utick.c
│ │ │ │ │ │ ├── fsl_utick.h
│ │ │ │ │ │ ├── fsl_wwdt.c
│ │ │ │ │ │ └── fsl_wwdt.h
│ │ │ │ │ ├── fsl_device_registers.h
│ │ │ │ │ ├── gcc/
│ │ │ │ │ │ ├── LPC51U68_flash.ld
│ │ │ │ │ │ ├── LPC51U68_ram.ld
│ │ │ │ │ │ ├── libpower.a
│ │ │ │ │ │ └── startup_LPC51U68.S
│ │ │ │ │ ├── project_template/
│ │ │ │ │ │ ├── board.c
│ │ │ │ │ │ ├── board.h
│ │ │ │ │ │ ├── clock_config.c
│ │ │ │ │ │ ├── clock_config.h
│ │ │ │ │ │ ├── peripherals.c
│ │ │ │ │ │ ├── peripherals.h
│ │ │ │ │ │ ├── pin_mux.c
│ │ │ │ │ │ └── pin_mux.h
│ │ │ │ │ ├── system_LPC51U68.c
│ │ │ │ │ ├── system_LPC51U68.h
│ │ │ │ │ ├── template/
│ │ │ │ │ │ └── RTE_Device.h
│ │ │ │ │ └── utilities/
│ │ │ │ │ ├── fsl_assert.c
│ │ │ │ │ ├── fsl_debug_console.c
│ │ │ │ │ ├── fsl_debug_console.h
│ │ │ │ │ ├── fsl_debug_console_conf.h
│ │ │ │ │ ├── fsl_notifier.c
│ │ │ │ │ ├── fsl_notifier.h
│ │ │ │ │ ├── fsl_shell.c
│ │ │ │ │ ├── fsl_shell.h
│ │ │ │ │ ├── io/
│ │ │ │ │ │ ├── fsl_io.c
│ │ │ │ │ │ └── fsl_io.h
│ │ │ │ │ ├── log/
│ │ │ │ │ │ ├── fsl_log.c
│ │ │ │ │ │ └── fsl_log.h
│ │ │ │ │ └── str/
│ │ │ │ │ ├── fsl_str.c
│ │ │ │ │ └── fsl_str.h
│ │ │ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ │ │ └── board/
│ │ │ │ ├── board.c
│ │ │ │ ├── board.h
│ │ │ │ ├── clock_config.c
│ │ │ │ ├── clock_config.h
│ │ │ │ ├── example.xml
│ │ │ │ ├── hello_world.bak
│ │ │ │ ├── hello_world.xml
│ │ │ │ ├── libpower.a
│ │ │ │ ├── pin_mux.c
│ │ │ │ ├── pin_mux.h
│ │ │ │ └── readme.txt
│ │ │ ├── GCC/
│ │ │ │ ├── LPC51U68_flash.ld
│ │ │ │ ├── Makefile
│ │ │ │ ├── config.mk
│ │ │ │ ├── prune.mk
│ │ │ │ └── startup_LPC51U68.s
│ │ │ ├── Inc/
│ │ │ │ ├── main.h
│ │ │ │ └── ota_port.h
│ │ │ ├── OS_CONFIG/
│ │ │ │ ├── los_builddef.h
│ │ │ │ ├── los_printf.h
│ │ │ │ └── target_config.h
│ │ │ └── Src/
│ │ │ ├── ENC28J60.c
│ │ │ ├── ENC28J60.h
│ │ │ ├── ethernetif.c
│ │ │ ├── main.c
│ │ │ └── uart.c
│ │ └── STM32F103VET6_NB_GCC/
│ │ ├── .mxproject
│ │ ├── Drivers/
│ │ │ ├── CMSIS/
│ │ │ │ └── Device/
│ │ │ │ └── ST/
│ │ │ │ └── STM32F1xx/
│ │ │ │ └── Include/
│ │ │ │ ├── stm32f103x6.h
│ │ │ │ ├── stm32f103xb.h
│ │ │ │ ├── stm32f103xe.h
│ │ │ │ ├── stm32f103xg.h
│ │ │ │ ├── stm32f1xx.h
│ │ │ │ └── system_stm32f1xx.h
│ │ │ └── STM32F1xx_HAL_Driver/
│ │ │ ├── Inc/
│ │ │ │ ├── Legacy/
│ │ │ │ │ └── stm32_hal_legacy.h
│ │ │ │ ├── stm32_assert_template.h
│ │ │ │ ├── stm32f1xx_hal.h
│ │ │ │ ├── stm32f1xx_hal_adc.h
│ │ │ │ ├── stm32f1xx_hal_adc_ex.h
│ │ │ │ ├── stm32f1xx_hal_can.h
│ │ │ │ ├── stm32f1xx_hal_can_ex.h
│ │ │ │ ├── stm32f1xx_hal_cec.h
│ │ │ │ ├── stm32f1xx_hal_conf_template.h
│ │ │ │ ├── stm32f1xx_hal_cortex.h
│ │ │ │ ├── stm32f1xx_hal_crc.h
│ │ │ │ ├── stm32f1xx_hal_dac.h
│ │ │ │ ├── stm32f1xx_hal_dac_ex.h
│ │ │ │ ├── stm32f1xx_hal_def.h
│ │ │ │ ├── stm32f1xx_hal_dma.h
│ │ │ │ ├── stm32f1xx_hal_dma_ex.h
│ │ │ │ ├── stm32f1xx_hal_eth.h
│ │ │ │ ├── stm32f1xx_hal_flash.h
│ │ │ │ ├── stm32f1xx_hal_flash_ex.h
│ │ │ │ ├── stm32f1xx_hal_gpio.h
│ │ │ │ ├── stm32f1xx_hal_gpio_ex.h
│ │ │ │ ├── stm32f1xx_hal_hcd.h
│ │ │ │ ├── stm32f1xx_hal_i2c.h
│ │ │ │ ├── stm32f1xx_hal_i2s.h
│ │ │ │ ├── stm32f1xx_hal_irda.h
│ │ │ │ ├── stm32f1xx_hal_iwdg.h
│ │ │ │ ├── stm32f1xx_hal_mmc.h
│ │ │ │ ├── stm32f1xx_hal_nand.h
│ │ │ │ ├── stm32f1xx_hal_nor.h
│ │ │ │ ├── stm32f1xx_hal_pccard.h
│ │ │ │ ├── stm32f1xx_hal_pcd.h
│ │ │ │ ├── stm32f1xx_hal_pcd_ex.h
│ │ │ │ ├── stm32f1xx_hal_pwr.h
│ │ │ │ ├── stm32f1xx_hal_rcc.h
│ │ │ │ ├── stm32f1xx_hal_rcc_ex.h
│ │ │ │ ├── stm32f1xx_hal_rtc.h
│ │ │ │ ├── stm32f1xx_hal_rtc_ex.h
│ │ │ │ ├── stm32f1xx_hal_sd.h
│ │ │ │ ├── stm32f1xx_hal_smartcard.h
│ │ │ │ ├── stm32f1xx_hal_spi.h
│ │ │ │ ├── stm32f1xx_hal_sram.h
│ │ │ │ ├── stm32f1xx_hal_tim.h
│ │ │ │ ├── stm32f1xx_hal_tim_ex.h
│ │ │ │ ├── stm32f1xx_hal_uart.h
│ │ │ │ ├── stm32f1xx_hal_usart.h
│ │ │ │ ├── stm32f1xx_hal_wwdg.h
│ │ │ │ ├── stm32f1xx_ll_adc.h
│ │ │ │ ├── stm32f1xx_ll_bus.h
│ │ │ │ ├── stm32f1xx_ll_cortex.h
│ │ │ │ ├── stm32f1xx_ll_crc.h
│ │ │ │ ├── stm32f1xx_ll_dac.h
│ │ │ │ ├── stm32f1xx_ll_dma.h
│ │ │ │ ├── stm32f1xx_ll_exti.h
│ │ │ │ ├── stm32f1xx_ll_fsmc.h
│ │ │ │ ├── stm32f1xx_ll_gpio.h
│ │ │ │ ├── stm32f1xx_ll_i2c.h
│ │ │ │ ├── stm32f1xx_ll_iwdg.h
│ │ │ │ ├── stm32f1xx_ll_pwr.h
│ │ │ │ ├── stm32f1xx_ll_rcc.h
│ │ │ │ ├── stm32f1xx_ll_rtc.h
│ │ │ │ ├── stm32f1xx_ll_sdmmc.h
│ │ │ │ ├── stm32f1xx_ll_spi.h
│ │ │ │ ├── stm32f1xx_ll_system.h
│ │ │ │ ├── stm32f1xx_ll_tim.h
│ │ │ │ ├── stm32f1xx_ll_usart.h
│ │ │ │ ├── stm32f1xx_ll_usb.h
│ │ │ │ ├── stm32f1xx_ll_utils.h
│ │ │ │ └── stm32f1xx_ll_wwdg.h
│ │ │ └── Src/
│ │ │ ├── stm32f1xx_hal.c
│ │ │ ├── stm32f1xx_hal_adc.c
│ │ │ ├── stm32f1xx_hal_adc_ex.c
│ │ │ ├── stm32f1xx_hal_can.c
│ │ │ ├── stm32f1xx_hal_cec.c
│ │ │ ├── stm32f1xx_hal_cortex.c
│ │ │ ├── stm32f1xx_hal_crc.c
│ │ │ ├── stm32f1xx_hal_dac.c
│ │ │ ├── stm32f1xx_hal_dac_ex.c
│ │ │ ├── stm32f1xx_hal_dma.c
│ │ │ ├── stm32f1xx_hal_eth.c
│ │ │ ├── stm32f1xx_hal_flash.c
│ │ │ ├── stm32f1xx_hal_flash_ex.c
│ │ │ ├── stm32f1xx_hal_gpio.c
│ │ │ ├── stm32f1xx_hal_gpio_ex.c
│ │ │ ├── stm32f1xx_hal_hcd.c
│ │ │ ├── stm32f1xx_hal_i2c.c
│ │ │ ├── stm32f1xx_hal_i2s.c
│ │ │ ├── stm32f1xx_hal_irda.c
│ │ │ ├── stm32f1xx_hal_iwdg.c
│ │ │ ├── stm32f1xx_hal_mmc.c
│ │ │ ├── stm32f1xx_hal_msp_template.c
│ │ │ ├── stm32f1xx_hal_nand.c
│ │ │ ├── stm32f1xx_hal_nor.c
│ │ │ ├── stm32f1xx_hal_pccard.c
│ │ │ ├── stm32f1xx_hal_pcd.c
│ │ │ ├── stm32f1xx_hal_pcd_ex.c
│ │ │ ├── stm32f1xx_hal_pwr.c
│ │ │ ├── stm32f1xx_hal_rcc.c
│ │ │ ├── stm32f1xx_hal_rcc_ex.c
│ │ │ ├── stm32f1xx_hal_rtc.c
│ │ │ ├── stm32f1xx_hal_rtc_ex.c
│ │ │ ├── stm32f1xx_hal_sd.c
│ │ │ ├── stm32f1xx_hal_smartcard.c
│ │ │ ├── stm32f1xx_hal_spi.c
│ │ │ ├── stm32f1xx_hal_spi_ex.c
│ │ │ ├── stm32f1xx_hal_sram.c
│ │ │ ├── stm32f1xx_hal_tim.c
│ │ │ ├── stm32f1xx_hal_tim_ex.c
│ │ │ ├── stm32f1xx_hal_timebase_rtc_alarm_template.c
│ │ │ ├── stm32f1xx_hal_timebase_tim_template.c
│ │ │ ├── stm32f1xx_hal_uart.c
│ │ │ ├── stm32f1xx_hal_usart.c
│ │ │ ├── stm32f1xx_hal_wwdg.c
│ │ │ ├── stm32f1xx_ll_adc.c
│ │ │ ├── stm32f1xx_ll_crc.c
│ │ │ ├── stm32f1xx_ll_dac.c
│ │ │ ├── stm32f1xx_ll_dma.c
│ │ │ ├── stm32f1xx_ll_exti.c
│ │ │ ├── stm32f1xx_ll_fsmc.c
│ │ │ ├── stm32f1xx_ll_gpio.c
│ │ │ ├── stm32f1xx_ll_i2c.c
│ │ │ ├── stm32f1xx_ll_pwr.c
│ │ │ ├── stm32f1xx_ll_rcc.c
│ │ │ ├── stm32f1xx_ll_rtc.c
│ │ │ ├── stm32f1xx_ll_sdmmc.c
│ │ │ ├── stm32f1xx_ll_spi.c
│ │ │ ├── stm32f1xx_ll_tim.c
│ │ │ ├── stm32f1xx_ll_usart.c
│ │ │ ├── stm32f1xx_ll_usb.c
│ │ │ └── stm32f1xx_ll_utils.c
│ │ ├── GCC/
│ │ │ ├── Makefile
│ │ │ ├── STM32F103VETx_FLASH.ld
│ │ │ └── startup_stm32f103xe.s
│ │ ├── Inc/
│ │ │ ├── at_hal.h
│ │ │ ├── main.h
│ │ │ ├── stm32f1xx_hal_conf.h
│ │ │ ├── stm32f1xx_it.h
│ │ │ └── usart.h
│ │ ├── OS_CONFIG/
│ │ │ ├── los_builddef.h
│ │ │ ├── los_printf.h
│ │ │ └── target_config.h
│ │ ├── STM32F103VET6_NB_GCC.ioc
│ │ └── Src/
│ │ ├── at_hal.c
│ │ ├── main.c
│ │ ├── stm32f1xx_hal_msp.c
│ │ ├── stm32f1xx_it.c
│ │ ├── system_stm32f1xx.c
│ │ └── usart.c
│ └── tests/
│ ├── cmockery/
│ │ ├── AUTHORS
│ │ ├── COPYING
│ │ ├── ChangeLog
│ │ ├── INSTALL
│ │ ├── LICENSE.txt
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── NEWS
│ │ ├── README
│ │ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.docx
│ │ ├── aclocal.m4
│ │ ├── autogen.sh
│ │ ├── compile
│ │ ├── config.guess
│ │ ├── config.sub
│ │ ├── configure
│ │ ├── configure.ac
│ │ ├── depcomp
│ │ ├── doc/
│ │ │ ├── html2wiki.sh
│ │ │ └── index.html
│ │ ├── install-sh
│ │ ├── ltmain.sh
│ │ ├── m4/
│ │ │ ├── ac_have_attribute.m4
│ │ │ ├── ac_rwlock.m4
│ │ │ ├── acx_pthread.m4
│ │ │ ├── compiler_characteristics.m4
│ │ │ ├── google_namespace.m4
│ │ │ ├── namespaces.m4
│ │ │ ├── stl_hash.m4
│ │ │ └── stl_namespace.m4
│ │ ├── missing
│ │ ├── mkinstalldirs
│ │ ├── packages/
│ │ │ ├── deb/
│ │ │ │ ├── README
│ │ │ │ ├── changelog
│ │ │ │ ├── compat
│ │ │ │ ├── control
│ │ │ │ ├── copyright
│ │ │ │ ├── docs
│ │ │ │ ├── libcmockery-dev.dirs
│ │ │ │ ├── libcmockery-dev.install
│ │ │ │ ├── libcmockery0.dirs
│ │ │ │ ├── libcmockery0.install
│ │ │ │ └── rules
│ │ │ ├── deb.sh
│ │ │ ├── rpm/
│ │ │ │ └── rpm.spec
│ │ │ └── rpm.sh
│ │ ├── readme.md
│ │ ├── src/
│ │ │ ├── cmockery.c
│ │ │ ├── config.h
│ │ │ ├── example/
│ │ │ │ ├── allocate_module.c
│ │ │ │ ├── allocate_module_test.c
│ │ │ │ ├── assert_macro.c
│ │ │ │ ├── assert_macro_test.c
│ │ │ │ ├── assert_module.c
│ │ │ │ ├── assert_module_test.c
│ │ │ │ ├── calculator.c
│ │ │ │ ├── calculator_test.c
│ │ │ │ ├── customer_database.c
│ │ │ │ ├── customer_database_test.c
│ │ │ │ ├── database.h
│ │ │ │ ├── key_value.c
│ │ │ │ ├── key_value_test.c
│ │ │ │ ├── product_database.c
│ │ │ │ ├── product_database_test.c
│ │ │ │ └── run_tests.c
│ │ │ └── google/
│ │ │ └── cmockery.h
│ │ └── windows/
│ │ └── makefile
│ ├── test_agenttiny/
│ │ ├── It_Los_Agenttiny.c
│ │ ├── It_Los_Atiny_Bind.c
│ │ ├── It_Los_Atiny_Data_Report.c
│ │ ├── It_Los_Atiny_Init.c
│ │ └── test_agenttiny.h
│ ├── test_main.c
│ ├── test_sota/
│ │ ├── sota_test.c
│ │ └── sota_test.h
│ └── test_suit/
│ ├── agenttiny_test.c
│ ├── fs_test.c
│ └── regresstest.h
├── Huawei_LiteOS_Kernel/
│ ├── Huawei_LiteOS/
│ │ ├── kernel/
│ │ │ ├── base/
│ │ │ │ ├── core/
│ │ │ │ │ ├── los_priqueue.c
│ │ │ │ │ ├── los_priqueue.inc
│ │ │ │ │ ├── los_swtmr.c
│ │ │ │ │ ├── los_swtmr.inc
│ │ │ │ │ ├── los_sys.c
│ │ │ │ │ ├── los_sys.inc
│ │ │ │ │ ├── los_task.c
│ │ │ │ │ ├── los_task.inc
│ │ │ │ │ ├── los_tick.c
│ │ │ │ │ ├── los_tick.inc
│ │ │ │ │ ├── los_timeslice.c
│ │ │ │ │ └── los_timeslice.inc
│ │ │ │ ├── include/
│ │ │ │ │ ├── los_base.ph
│ │ │ │ │ ├── los_event.ph
│ │ │ │ │ ├── los_list.ph
│ │ │ │ │ ├── los_membox.ph
│ │ │ │ │ ├── los_memory.ph
│ │ │ │ │ ├── los_memstat.ph
│ │ │ │ │ ├── los_multipledlinkhead.ph
│ │ │ │ │ ├── los_mux.ph
│ │ │ │ │ ├── los_printf.ph
│ │ │ │ │ ├── los_priqueue.ph
│ │ │ │ │ ├── los_queue.ph
│ │ │ │ │ ├── los_sem.ph
│ │ │ │ │ ├── los_swtmr.ph
│ │ │ │ │ ├── los_sys.ph
│ │ │ │ │ ├── los_task.ph
│ │ │ │ │ ├── los_tick.ph
│ │ │ │ │ ├── los_timeslice.ph
│ │ │ │ │ └── los_typedef.ph
│ │ │ │ ├── ipc/
│ │ │ │ │ ├── los_event.c
│ │ │ │ │ ├── los_event.inc
│ │ │ │ │ ├── los_mux.c
│ │ │ │ │ ├── los_mux.inc
│ │ │ │ │ ├── los_queue.c
│ │ │ │ │ ├── los_queue.inc
│ │ │ │ │ ├── los_sem.c
│ │ │ │ │ └── los_sem.inc
│ │ │ │ ├── mem/
│ │ │ │ │ ├── los_membox.c
│ │ │ │ │ ├── los_membox.inc
│ │ │ │ │ ├── los_memory.c
│ │ │ │ │ ├── los_memory.inc
│ │ │ │ │ ├── los_memstat.c
│ │ │ │ │ ├── los_memstat.inc
│ │ │ │ │ ├── los_multipledlinkhead.c
│ │ │ │ │ └── los_multipledlinkhead.inc
│ │ │ │ └── misc/
│ │ │ │ └── los_misc.c
│ │ │ └── include/
│ │ │ ├── los_base.h
│ │ │ ├── los_errno.h
│ │ │ ├── los_event.h
│ │ │ ├── los_list.h
│ │ │ ├── los_membox.h
│ │ │ ├── los_memory.h
│ │ │ ├── los_multipledlinkhead.h
│ │ │ ├── los_mux.h
│ │ │ ├── los_printf.h
│ │ │ ├── los_priqueue.h
│ │ │ ├── los_queue.h
│ │ │ ├── los_sem.h
│ │ │ ├── los_swtmr.h
│ │ │ ├── los_sys.h
│ │ │ ├── los_tables.h
│ │ │ ├── los_task.h
│ │ │ ├── los_tick.h
│ │ │ └── los_typedef.h
│ │ └── platform/
│ │ ├── bsp/
│ │ │ └── sample/
│ │ │ └── config/
│ │ │ ├── los_builddef.h
│ │ │ ├── los_config.c
│ │ │ └── los_config.h
│ │ └── cpu/
│ │ └── arm/
│ │ └── cortex-m4/
│ │ ├── los_dispatch.s
│ │ ├── los_hw.c
│ │ ├── los_hw.h
│ │ ├── los_hw_tick.c
│ │ ├── los_hwi.c
│ │ ├── los_hwi.h
│ │ └── los_vendor.s
│ ├── LICENSE
│ ├── Projects/
│ │ └── EWARM/
│ │ └── cortex-m4/
│ │ └── stm32f411/
│ │ ├── Application/
│ │ │ └── README.md
│ │ ├── Huawei_LiteOS.dep
│ │ ├── Huawei_LiteOS.ewd
│ │ ├── Huawei_LiteOS.ewp
│ │ ├── Huawei_LiteOS.ewt
│ │ ├── Huawei_LiteOS.eww
│ │ ├── Huawei_LiteOS_cortexMF411.icf
│ │ └── settings/
│ │ ├── Huawei_LiteOS.Debug.cspy.bat
│ │ ├── Huawei_LiteOS.crun
│ │ ├── Huawei_LiteOS.dbgdt
│ │ ├── Huawei_LiteOS.dni
│ │ ├── Huawei_LiteOS.wsdt
│ │ ├── Huawei_LiteOS.wspos
│ │ └── Huawei_LiteOS_Debug.jlink
│ ├── README.md
│ └── doc/
│ └── HuaweiLiteOSKernelDevGuide.chm
├── README.md
├── _config.yml
├── community/
│ └── questions.md
├── doc/
│ ├── README-tr.md
│ └── README-zh.md
└── products/
└── honor_smart_screen.md
Showing preview only (612K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (7555 symbols across 594 files)
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m0/los_exc.c
function LITE_OS_SEC_TEXT (line 99) | LITE_OS_SEC_TEXT VOID osExcInfoDisplay(EXC_INFO_S *pstExc)
function LITE_OS_SEC_TEXT (line 141) | LITE_OS_SEC_TEXT VOID osExcCallStackAnalysis(EXC_INFO_S *pstExc)
function LITE_OS_SEC_TEXT (line 247) | LITE_OS_SEC_TEXT VOID osExcHandleEntry(UINT32 uwExcType, UINT32 uwUsingS...
function VOID (line 288) | static VOID osExcSaveIntStatus(VOID)
function VOID (line 338) | VOID osExcRegister(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc, V...
function VOID (line 366) | VOID osExcSaveSysInfo(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc...
function VOID (line 398) | static VOID osExcSaveInfo(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK p...
function VOID (line 461) | static VOID osExcSave2DDR(VOID)
function LITE_OS_SEC_TEXT_INIT (line 542) | LITE_OS_SEC_TEXT_INIT VOID osExcInit(UINT32 uwArraySize)
function VOID (line 566) | VOID osBackTrace(VOID)
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m3/los_exc.c
function LITE_OS_SEC_TEXT (line 99) | LITE_OS_SEC_TEXT VOID osExcInfoDisplay(EXC_INFO_S *pstExc)
function LITE_OS_SEC_TEXT (line 142) | LITE_OS_SEC_TEXT VOID osExcCallStackAnalysis(EXC_INFO_S *pstExc)
function LITE_OS_SEC_TEXT (line 243) | LITE_OS_SEC_TEXT VOID osExcHandleEntry(UINT32 uwExcType, UINT32 uwFaultA...
function VOID (line 330) | static VOID osExcSaveIntStatus(VOID)
function VOID (line 380) | VOID osExcRegister(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc, V...
function VOID (line 408) | VOID osExcSaveSysInfo(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc...
function VOID (line 440) | static VOID osExcSaveInfo(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK p...
function VOID (line 503) | static VOID osExcSave2DDR(VOID)
function LITE_OS_SEC_TEXT_INIT (line 584) | LITE_OS_SEC_TEXT_INIT VOID osExcInit(UINT32 uwArraySize)
function VOID (line 608) | VOID osBackTrace(VOID)
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m4/los_exc.c
function LITE_OS_SEC_TEXT (line 99) | LITE_OS_SEC_TEXT VOID osExcInfoDisplay(EXC_INFO_S *pstExc)
function LITE_OS_SEC_TEXT (line 141) | LITE_OS_SEC_TEXT VOID osExcCallStackAnalysis(EXC_INFO_S *pstExc)
function LITE_OS_SEC_TEXT (line 242) | LITE_OS_SEC_TEXT VOID osExcHandleEntry(UINT32 uwExcType, UINT32 uwFaultA...
function VOID (line 329) | static VOID osExcSaveIntStatus(VOID)
function VOID (line 379) | VOID osExcRegister(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc, V...
function VOID (line 407) | VOID osExcSaveSysInfo(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc...
function VOID (line 439) | static VOID osExcSaveInfo(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK p...
function VOID (line 502) | static VOID osExcSave2DDR(VOID)
function LITE_OS_SEC_TEXT_INIT (line 583) | LITE_OS_SEC_TEXT_INIT VOID osExcInit(UINT32 uwArraySize)
function VOID (line 607) | VOID osBackTrace(VOID)
FILE: Huawei_LiteOS/arch/arm/arm-m/cortex-m7/los_exc.c
function LITE_OS_SEC_TEXT (line 100) | LITE_OS_SEC_TEXT VOID osExcInfoDisplay(EXC_INFO_S *pstExc)
function LITE_OS_SEC_TEXT (line 143) | LITE_OS_SEC_TEXT VOID osExcCallStackAnalysis(EXC_INFO_S *pstExc)
function LITE_OS_SEC_TEXT (line 244) | LITE_OS_SEC_TEXT VOID osExcHandleEntry(UINT32 uwExcType, UINT32 uwFaultA...
function VOID (line 331) | static VOID osExcSaveIntStatus(VOID)
function VOID (line 381) | VOID osExcRegister(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc, V...
function VOID (line 409) | VOID osExcSaveSysInfo(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK pFunc...
function VOID (line 441) | static VOID osExcSaveInfo(EXC_INFO_TYPE uwType, EXC_INFO_SAVE_CALLBACK p...
function VOID (line 504) | static VOID osExcSave2DDR(VOID)
function LITE_OS_SEC_TEXT_INIT (line 585) | LITE_OS_SEC_TEXT_INIT VOID osExcInit(UINT32 uwArraySize)
function VOID (line 609) | VOID osBackTrace(VOID)
FILE: Huawei_LiteOS/arch/arm/arm-m/include/los_exc.h
type EXC_CONTEXT_S (line 75) | typedef struct tagExcContext
type UINT32 (line 135) | typedef UINT32 (*EXC_INFO_SAVE_CALLBACK)(UINT32 , VOID* );
type VOID (line 136) | typedef VOID (* EXC_PROC_FUNC)(UINT32, EXC_CONTEXT_S *);
type EXC_INFO_S (line 356) | typedef struct tagExcInfo
FILE: Huawei_LiteOS/arch/arm/arm-m/include/los_hw.h
type TSK_CONTEXT_S (line 81) | typedef struct tagTskContext
FILE: Huawei_LiteOS/arch/arm/arm-m/include/los_hw_tick.h
function LITE_OS_SEC_TEXT_MINOR (line 70) | LITE_OS_SEC_TEXT_MINOR static inline VOID LOS_SysTickStop(VOID)
function LITE_OS_SEC_TEXT_MINOR (line 82) | LITE_OS_SEC_TEXT_MINOR static inline VOID LOS_SysTickStart(VOID)
function LITE_OS_SEC_TEXT_MINOR (line 94) | LITE_OS_SEC_TEXT_MINOR static inline UINT32 LOS_SysTickGetIntStatus(VOID)
FILE: Huawei_LiteOS/arch/arm/arm-m/include/los_hwi.h
type UINT32 (line 94) | typedef UINT32 HWI_HANDLE_T;
type UINT16 (line 100) | typedef UINT16 HWI_PRIOR_T;
type UINT16 (line 106) | typedef UINT16 HWI_MODE_T;
type UINT32 (line 112) | typedef UINT32 HWI_ARG_T;
type VOID (line 120) | typedef VOID (* HWI_PROC_FUNC)(VOID *pParm);
type HWI_SLAVE_FUNC (line 121) | typedef struct
type VOID (line 129) | typedef VOID (* HWI_PROC_FUNC)(void);
type VOID (line 137) | typedef VOID (**HWI_VECTOR_FUNC)(void);
FILE: Huawei_LiteOS/arch/arm/arm-m/src/los_hw.c
function LITE_OS_SEC_TEXT (line 54) | LITE_OS_SEC_TEXT VOID osSchedule(VOID)
function LITE_OS_SEC_TEXT (line 66) | LITE_OS_SEC_TEXT VOID LOS_Schedule(VOID)
function LITE_OS_SEC_TEXT_MINOR (line 98) | LITE_OS_SEC_TEXT_MINOR VOID osTaskExit(VOID)
function LITE_OS_SEC_TEXT_INIT (line 113) | LITE_OS_SEC_TEXT_INIT VOID *osTskStackInit(UINT32 uwTaskID, UINT32 uwSta...
function LITE_OS_SEC_TEXT_INIT (line 152) | LITE_OS_SEC_TEXT_INIT VOID osEnterSleep(VOID)
FILE: Huawei_LiteOS/arch/arm/arm-m/src/los_hw_tick.c
function LITE_OS_SEC_TEXT_INIT (line 54) | LITE_OS_SEC_TEXT_INIT UINT32 osTickStart(VOID)
function LITE_OS_SEC_TEXT_MINOR (line 95) | LITE_OS_SEC_TEXT_MINOR VOID LOS_SysTickReload(UINT32 uwCyclesPerTick)
function LITE_OS_SEC_TEXT_MINOR (line 111) | LITE_OS_SEC_TEXT_MINOR UINT32 LOS_SysTickCurrCycleGet(VOID)
function LITE_OS_SEC_TEXT_MINOR (line 139) | LITE_OS_SEC_TEXT_MINOR VOID LOS_GetCpuCycle(UINT32 *puwCntHi, UINT32 *pu...
function LITE_OS_SEC_TEXT_MINOR (line 176) | LITE_OS_SEC_TEXT_MINOR VOID LOS_GetSystickCycle(UINT32 *puwCntHi, UINT32...
FILE: Huawei_LiteOS/arch/arm/arm-m/src/los_hwi.c
function LITE_OS_SEC_TEXT_MINOR (line 95) | LITE_OS_SEC_TEXT_MINOR UINT32 osIntNumGet(VOID)
function LITE_OS_SEC_TEXT_MINOR (line 109) | LITE_OS_SEC_TEXT_MINOR VOID osHwiDefaultHandler(VOID)
function LITE_OS_SEC_TEXT (line 123) | LITE_OS_SEC_TEXT VOID osInterrupt(VOID)
function LITE_OS_SEC_TEXT_INIT (line 168) | LITE_OS_SEC_TEXT_INIT VOID osHwiInit()
function LITE_OS_SEC_TEXT_INIT (line 196) | LITE_OS_SEC_TEXT_INIT UINT32 LOS_HwiCreate( HWI_HANDLE_T uwHwiNum,
function LITE_OS_SEC_TEXT_INIT (line 246) | LITE_OS_SEC_TEXT_INIT UINT32 LOS_HwiDelete(HWI_HANDLE_T uwHwiNum)
function SysTick_Handler (line 276) | void SysTick_Handler(void)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/arm_math.h
type arm_status (line 387) | typedef enum
type q7_t (line 401) | typedef int8_t q7_t;
type q15_t (line 406) | typedef int16_t q15_t;
type q31_t (line 411) | typedef int32_t q31_t;
type q63_t (line 416) | typedef int64_t q63_t;
type float32_t (line 421) | typedef float float32_t;
type float64_t (line 426) | typedef double float64_t;
function q31_t (line 469) | q31_t clip_q63_to_q31(
function q15_t (line 479) | q15_t clip_q63_to_q15(
function q7_t (line 489) | q7_t clip_q31_to_q7(
function q15_t (line 499) | q15_t clip_q31_to_q15(
function q63_t (line 510) | q63_t mult32x64(
function __CLZ (line 528) | uint32_t __CLZ(
function arm_recip_q31 (line 548) | uint32_t arm_recip_q31(
function arm_recip_q15 (line 599) | uint32_t arm_recip_q15(
function q31_t (line 651) | q31_t __SSAT(
function __QADD8 (line 696) | uint32_t __QADD8(
function __QSUB8 (line 714) | uint32_t __QSUB8(
function __QADD16 (line 732) | uint32_t __QADD16(
function __SHADD16 (line 749) | uint32_t __SHADD16(
function __QSUB16 (line 765) | uint32_t __QSUB16(
function __SHSUB16 (line 781) | uint32_t __SHSUB16(
function __QASX (line 797) | uint32_t __QASX(
function __SHASX (line 813) | uint32_t __SHASX(
function __QSAX (line 829) | uint32_t __QSAX(
function __SHSAX (line 845) | uint32_t __SHSAX(
function __SMUSDX (line 861) | uint32_t __SMUSDX(
function __SMUADX (line 872) | uint32_t __SMUADX(
function __QADD (line 884) | int32_t __QADD(
function __QSUB (line 895) | int32_t __QSUB(
function __SMLAD (line 906) | uint32_t __SMLAD(
function __SMLADX (line 920) | uint32_t __SMLADX(
function __SMLSDX (line 934) | uint32_t __SMLSDX(
function __SMLALD (line 948) | uint64_t __SMLALD(
function __SMLALDX (line 963) | uint64_t __SMLALDX(
function __SMUAD (line 978) | uint32_t __SMUAD(
function __SMUSD (line 990) | uint32_t __SMUSD(
function __SXTB16 (line 1002) | uint32_t __SXTB16(
function __SMMLA (line 1012) | int32_t __SMMLA(
function __PKHBT (line 1024) | uint32_t __PKHBT(
function __PKHTB (line 1036) | uint32_t __PKHTB(
type arm_fir_instance_q7 (line 1053) | typedef struct
type arm_fir_instance_q15 (line 1063) | typedef struct
type arm_fir_instance_q31 (line 1073) | typedef struct
type arm_fir_instance_f32 (line 1083) | typedef struct
type arm_biquad_casd_df1_inst_q15 (line 1244) | typedef struct
type arm_biquad_casd_df1_inst_q31 (line 1255) | typedef struct
type arm_biquad_casd_df1_inst_f32 (line 1266) | typedef struct
type arm_matrix_instance_f32 (line 1393) | typedef struct
type arm_matrix_instance_f64 (line 1404) | typedef struct
type arm_matrix_instance_q15 (line 1414) | typedef struct
type arm_matrix_instance_q31 (line 1424) | typedef struct
type arm_pid_instance_q15 (line 1761) | typedef struct
type arm_pid_instance_q31 (line 1779) | typedef struct
type arm_pid_instance_f32 (line 1793) | typedef struct
type arm_linear_interp_instance_f32 (line 1864) | typedef struct
type arm_bilinear_interp_instance_f32 (line 1875) | typedef struct
type arm_bilinear_interp_instance_q31 (line 1885) | typedef struct
type arm_bilinear_interp_instance_q15 (line 1895) | typedef struct
type arm_bilinear_interp_instance_q7 (line 1905) | typedef struct
type arm_cfft_radix2_instance_q15 (line 1972) | typedef struct
type arm_cfft_radix4_instance_q15 (line 1999) | typedef struct
type arm_cfft_radix2_instance_q31 (line 2025) | typedef struct
type arm_cfft_radix4_instance_q31 (line 2051) | typedef struct
type arm_cfft_radix2_instance_f32 (line 2077) | typedef struct
type arm_cfft_radix4_instance_f32 (line 2104) | typedef struct
type arm_cfft_instance_q15 (line 2131) | typedef struct
type arm_cfft_instance_q31 (line 2148) | typedef struct
type arm_cfft_instance_f32 (line 2165) | typedef struct
type arm_rfft_instance_q15 (line 2182) | typedef struct
type arm_rfft_instance_q31 (line 2207) | typedef struct
type arm_rfft_instance_f32 (line 2232) | typedef struct
type arm_rfft_fast_instance_f32 (line 2259) | typedef struct
type arm_dct4_instance_f32 (line 2278) | typedef struct
type arm_dct4_instance_q31 (line 2324) | typedef struct
type arm_dct4_instance_q15 (line 2370) | typedef struct
type arm_fir_decimate_instance_q15 (line 3293) | typedef struct
type arm_fir_decimate_instance_q31 (line 3304) | typedef struct
type arm_fir_decimate_instance_f32 (line 3315) | typedef struct
type arm_fir_interpolate_instance_q15 (line 3456) | typedef struct
type arm_fir_interpolate_instance_q31 (line 3467) | typedef struct
type arm_fir_interpolate_instance_f32 (line 3478) | typedef struct
type arm_biquad_cas_df1_32x64_ins_q31 (line 3592) | typedef struct
type arm_biquad_cascade_df2T_instance_f32 (line 3632) | typedef struct
type arm_biquad_cascade_stereo_df2T_instance_f32 (line 3642) | typedef struct
type arm_biquad_cascade_df2T_instance_f64 (line 3652) | typedef struct
type arm_fir_lattice_instance_q15 (line 3747) | typedef struct
type arm_fir_lattice_instance_q31 (line 3757) | typedef struct
type arm_fir_lattice_instance_f32 (line 3767) | typedef struct
type arm_iir_lattice_instance_q15 (line 3862) | typedef struct
type arm_iir_lattice_instance_q31 (line 3873) | typedef struct
type arm_iir_lattice_instance_f32 (line 3884) | typedef struct
type arm_lms_instance_f32 (line 3992) | typedef struct
type arm_lms_instance_q15 (line 4040) | typedef struct
type arm_lms_instance_q31 (line 4091) | typedef struct
type arm_lms_norm_instance_f32 (line 4142) | typedef struct
type arm_lms_norm_instance_q31 (line 4192) | typedef struct
type arm_lms_norm_instance_q15 (line 4246) | typedef struct
type arm_fir_sparse_instance_f32 (line 4454) | typedef struct
type arm_fir_sparse_instance_q31 (line 4467) | typedef struct
type arm_fir_sparse_instance_q15 (line 4480) | typedef struct
type arm_fir_sparse_instance_q7 (line 4493) | typedef struct
function float32_t (line 4819) | float32_t arm_pid_f32(
function q31_t (line 4853) | q31_t arm_pid_q31(
function q15_t (line 4900) | q15_t arm_pid_q15(
function arm_clarke_f32 (line 5011) | void arm_clarke_f32(
function arm_clarke_q31 (line 5038) | void arm_clarke_q31(
function arm_inv_clarke_f32 (line 5108) | void arm_inv_clarke_f32(
function arm_inv_clarke_q31 (line 5135) | void arm_inv_clarke_q31(
function arm_park_f32 (line 5218) | void arm_park_f32(
function arm_park_q31 (line 5249) | void arm_park_q31(
function arm_inv_park_f32 (line 5331) | void arm_inv_park_f32(
function arm_inv_park_q31 (line 5362) | void arm_inv_park_q31(
function float32_t (line 5457) | float32_t arm_linear_interp_f32(
function q31_t (line 5514) | q31_t arm_linear_interp_q31(
function q15_t (line 5572) | q15_t arm_linear_interp_q15(
function q7_t (line 5629) | q7_t arm_linear_interp_q7(
function arm_status (line 5769) | arm_status arm_sqrt_f32(
function arm_circularWrite_f32 (line 5829) | void arm_circularWrite_f32(
function arm_circularRead_f32 (line 5874) | void arm_circularRead_f32(
function arm_circularWrite_q15 (line 5929) | void arm_circularWrite_q15(
function arm_circularRead_q15 (line 5973) | void arm_circularRead_q15(
function arm_circularWrite_q7 (line 6029) | void arm_circularWrite_q7(
function arm_circularRead_q7 (line 6073) | void arm_circularRead_q7(
function float32_t (line 6776) | float32_t arm_bilinear_interp_f32(
function q31_t (line 6842) | q31_t arm_bilinear_interp_q31(
function q15_t (line 6916) | q15_t arm_bilinear_interp_q15(
function q7_t (line 6994) | q7_t arm_bilinear_interp_q7(
FILE: Huawei_LiteOS/arch/arm/common/cmsis/cmsis_armcc.h
function __STATIC_INLINE (line 110) | __STATIC_INLINE uint32_t __get_CONTROL(void)
function __STATIC_INLINE (line 122) | __STATIC_INLINE void __set_CONTROL(uint32_t control)
function __STATIC_INLINE (line 134) | __STATIC_INLINE uint32_t __get_IPSR(void)
function __STATIC_INLINE (line 146) | __STATIC_INLINE uint32_t __get_APSR(void)
function __STATIC_INLINE (line 158) | __STATIC_INLINE uint32_t __get_xPSR(void)
function __STATIC_INLINE (line 170) | __STATIC_INLINE uint32_t __get_PSP(void)
function __STATIC_INLINE (line 182) | __STATIC_INLINE void __set_PSP(uint32_t topOfProcStack)
function __STATIC_INLINE (line 194) | __STATIC_INLINE uint32_t __get_MSP(void)
function __STATIC_INLINE (line 206) | __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack)
function __STATIC_INLINE (line 218) | __STATIC_INLINE uint32_t __get_PRIMASK(void)
function __STATIC_INLINE (line 230) | __STATIC_INLINE void __set_PRIMASK(uint32_t priMask)
function __STATIC_INLINE (line 261) | __STATIC_INLINE uint32_t __get_BASEPRI(void)
function __STATIC_INLINE (line 273) | __STATIC_INLINE void __set_BASEPRI(uint32_t basePri)
function __STATIC_INLINE (line 286) | __STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri)
function __STATIC_INLINE (line 298) | __STATIC_INLINE uint32_t __get_FAULTMASK(void)
function __STATIC_INLINE (line 310) | __STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask)
function __STATIC_INLINE (line 327) | __STATIC_INLINE uint32_t __get_FPSCR(void)
function __STATIC_INLINE (line 344) | __STATIC_INLINE void __set_FPSCR(uint32_t fpscr)
function __REV16 (line 447) | uint32_t __REV16(uint32_t value)
function __REVSH (line 462) | int32_t __REVSH(int32_t value)
function __STATIC_INLINE (line 500) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t ...
function __RRX (line 649) | uint32_t __RRX(uint32_t value)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/cmsis_armclang.h
type T_UINT32 (line 54) | struct __attribute__((packed)) T_UINT32 { uint32_t v; }
function __STATIC_INLINE (line 96) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_CONTROL(void)
function __STATIC_INLINE (line 111) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_CONTROL...
function __STATIC_INLINE (line 126) | __attribute__((always_inline)) __STATIC_INLINE void __set_CONTROL(uint32...
function __STATIC_INLINE (line 138) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_CONTROL_NS(...
function __STATIC_INLINE (line 150) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_IPSR(void)
function __STATIC_INLINE (line 164) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_APSR(void)
function __STATIC_INLINE (line 178) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_xPSR(void)
function __STATIC_INLINE (line 192) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PSP(void)
function __STATIC_INLINE (line 207) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PSP_NS(...
function __STATIC_INLINE (line 222) | __attribute__((always_inline)) __STATIC_INLINE void __set_PSP(uint32_t t...
function __STATIC_INLINE (line 234) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PSP_NS(uint...
function __STATIC_INLINE (line 246) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_MSP(void)
function __STATIC_INLINE (line 261) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_MSP_NS(...
function __STATIC_INLINE (line 276) | __attribute__((always_inline)) __STATIC_INLINE void __set_MSP(uint32_t t...
function __STATIC_INLINE (line 288) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_MSP_NS(uint...
function __STATIC_INLINE (line 300) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PRIMASK(void)
function __STATIC_INLINE (line 315) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PRIMASK...
function __STATIC_INLINE (line 330) | __attribute__((always_inline)) __STATIC_INLINE void __set_PRIMASK(uint32...
function __STATIC_INLINE (line 342) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PRIMASK_NS(...
function __STATIC_INLINE (line 373) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_BASEPRI(void)
function __STATIC_INLINE (line 388) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_BASEPRI...
function __STATIC_INLINE (line 403) | __attribute__((always_inline)) __STATIC_INLINE void __set_BASEPRI(uint32...
function __STATIC_INLINE (line 415) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_BASEPRI_NS(...
function __STATIC_INLINE (line 428) | __attribute__((always_inline)) __STATIC_INLINE void __set_BASEPRI_MAX(ui...
function __STATIC_INLINE (line 439) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_FAULTMASK(...
function __STATIC_INLINE (line 454) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_FAULTMA...
function __STATIC_INLINE (line 469) | __attribute__((always_inline)) __STATIC_INLINE void __set_FAULTMASK(uint...
function __STATIC_INLINE (line 481) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_FAULTMASK_N...
function __STATIC_INLINE (line 500) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PSPLIM(void)
function __STATIC_INLINE (line 516) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PSPLIM_...
function __STATIC_INLINE (line 531) | __attribute__((always_inline)) __STATIC_INLINE void __set_PSPLIM(uint32_...
function __STATIC_INLINE (line 544) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PSPLIM_NS(u...
function __STATIC_INLINE (line 556) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_MSPLIM(void)
function __STATIC_INLINE (line 573) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_MSPLIM_...
function __STATIC_INLINE (line 588) | __attribute__((always_inline)) __STATIC_INLINE void __set_MSPLIM(uint32_...
function __STATIC_INLINE (line 601) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_MSPLIM_NS(u...
function __STATIC_INLINE (line 620) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_FPSCR(void)
function __STATIC_INLINE (line 640) | __attribute__((always_inline)) __STATIC_INLINE void __set_FPSCR(uint32_t...
function __STATIC_INLINE (line 744) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __REV16(uint32_t...
function __STATIC_INLINE (line 761) | __attribute__((always_inline)) __STATIC_INLINE int32_t __REVSH(int32_t v...
function __STATIC_INLINE (line 777) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __ROR(uint32_t o...
function __STATIC_INLINE (line 800) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t ...
function __STATIC_INLINE (line 939) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RRX(uint32_t v...
function __STATIC_INLINE (line 954) | __attribute__((always_inline)) __STATIC_INLINE uint8_t __LDRBT(volatile ...
function __STATIC_INLINE (line 969) | __attribute__((always_inline)) __STATIC_INLINE uint16_t __LDRHT(volatile...
function __STATIC_INLINE (line 984) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __LDRT(volatile ...
function __STATIC_INLINE (line 999) | __attribute__((always_inline)) __STATIC_INLINE void __STRBT(uint8_t valu...
function __STATIC_INLINE (line 1011) | __attribute__((always_inline)) __STATIC_INLINE void __STRHT(uint16_t val...
function __STATIC_INLINE (line 1023) | __attribute__((always_inline)) __STATIC_INLINE void __STRT(uint32_t valu...
function __STATIC_INLINE (line 1041) | __attribute__((always_inline)) __STATIC_INLINE uint8_t __LDAB(volatile u...
function __STATIC_INLINE (line 1056) | __attribute__((always_inline)) __STATIC_INLINE uint16_t __LDAH(volatile ...
function __STATIC_INLINE (line 1071) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __LDA(volatile u...
function __STATIC_INLINE (line 1086) | __attribute__((always_inline)) __STATIC_INLINE void __STLB(uint8_t value...
function __STATIC_INLINE (line 1098) | __attribute__((always_inline)) __STATIC_INLINE void __STLH(uint16_t valu...
function __STATIC_INLINE (line 1110) | __attribute__((always_inline)) __STATIC_INLINE void __STL(uint32_t value...
function __STATIC_INLINE (line 1189) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SADD8(uint32_t...
function __STATIC_INLINE (line 1197) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QADD8(uint32_t...
function __STATIC_INLINE (line 1205) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHADD8(uint32_...
function __STATIC_INLINE (line 1213) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UADD8(uint32_t...
function __STATIC_INLINE (line 1221) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQADD8(uint32_...
function __STATIC_INLINE (line 1229) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHADD8(uint32_...
function __STATIC_INLINE (line 1238) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSUB8(uint32_t...
function __STATIC_INLINE (line 1246) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSUB8(uint32_t...
function __STATIC_INLINE (line 1254) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSUB8(uint32_...
function __STATIC_INLINE (line 1262) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USUB8(uint32_t...
function __STATIC_INLINE (line 1270) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSUB8(uint32_...
function __STATIC_INLINE (line 1278) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSUB8(uint32_...
function __STATIC_INLINE (line 1287) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SADD16(uint32_...
function __STATIC_INLINE (line 1295) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QADD16(uint32_...
function __STATIC_INLINE (line 1303) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHADD16(uint32...
function __STATIC_INLINE (line 1311) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UADD16(uint32_...
function __STATIC_INLINE (line 1319) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQADD16(uint32...
function __STATIC_INLINE (line 1327) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHADD16(uint32...
function __STATIC_INLINE (line 1335) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSUB16(uint32_...
function __STATIC_INLINE (line 1343) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSUB16(uint32_...
function __STATIC_INLINE (line 1351) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSUB16(uint32...
function __STATIC_INLINE (line 1359) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USUB16(uint32_...
function __STATIC_INLINE (line 1367) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSUB16(uint32...
function __STATIC_INLINE (line 1375) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSUB16(uint32...
function __STATIC_INLINE (line 1383) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SASX(uint32_t ...
function __STATIC_INLINE (line 1391) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QASX(uint32_t ...
function __STATIC_INLINE (line 1399) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHASX(uint32_t...
function __STATIC_INLINE (line 1407) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UASX(uint32_t ...
function __STATIC_INLINE (line 1415) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQASX(uint32_t...
function __STATIC_INLINE (line 1423) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHASX(uint32_t...
function __STATIC_INLINE (line 1431) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSAX(uint32_t ...
function __STATIC_INLINE (line 1439) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSAX(uint32_t ...
function __STATIC_INLINE (line 1447) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSAX(uint32_t...
function __STATIC_INLINE (line 1455) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USAX(uint32_t ...
function __STATIC_INLINE (line 1463) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSAX(uint32_t...
function __STATIC_INLINE (line 1471) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSAX(uint32_t...
function __STATIC_INLINE (line 1479) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USAD8(uint32_t...
function __STATIC_INLINE (line 1487) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USADA8(uint32_...
function __STATIC_INLINE (line 1509) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UXTB16(uint32_...
function __STATIC_INLINE (line 1517) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UXTAB16(uint32...
function __STATIC_INLINE (line 1525) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SXTB16(uint32_...
function __STATIC_INLINE (line 1533) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SXTAB16(uint32...
function __STATIC_INLINE (line 1541) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUAD (uint32...
function __STATIC_INLINE (line 1549) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUADX (uint32...
function __STATIC_INLINE (line 1557) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLAD (uint32_...
function __STATIC_INLINE (line 1565) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLADX (uint32...
function __STATIC_INLINE (line 1573) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLALD (uint32...
function __STATIC_INLINE (line 1590) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLALDX (uint3...
function __STATIC_INLINE (line 1607) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUSD (uint32...
function __STATIC_INLINE (line 1615) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUSDX (uint32...
function __STATIC_INLINE (line 1623) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLSD (uint32_...
function __STATIC_INLINE (line 1631) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLSDX (uint32...
function __STATIC_INLINE (line 1639) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLSLD (uint32...
function __STATIC_INLINE (line 1656) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLSLDX (uint3...
function __STATIC_INLINE (line 1673) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SEL (uint32_t...
function __STATIC_INLINE (line 1681) | __attribute__((always_inline)) __STATIC_INLINE int32_t __QADD( int32_t ...
function __STATIC_INLINE (line 1689) | __attribute__((always_inline)) __STATIC_INLINE int32_t __QSUB( int32_t ...
function __STATIC_INLINE (line 1722) | __attribute__((always_inline)) __STATIC_INLINE int32_t __SMMLA (int32_t ...
FILE: Huawei_LiteOS/arch/arm/common/cmsis/cmsis_compiler.h
function __packed (line 78) | __packed struct T_UINT32 { uint32_t v; }
type T_UINT32 (line 117) | struct __attribute__((packed)) T_UINT32 { uint32_t v; }
function T_UINT32 (line 160) | struct __packed__ T_UINT32 { uint32_t v; }
function packed (line 201) | packed struct T_UINT32 { uint32_t v; }
FILE: Huawei_LiteOS/arch/arm/common/cmsis/cmsis_gcc.h
type T_UINT32 (line 57) | struct __attribute__((packed)) T_UINT32 { uint32_t v; }
function __STATIC_INLINE (line 120) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_CONTROL...
function __STATIC_INLINE (line 135) | __attribute__((always_inline)) __STATIC_INLINE void __set_CONTROL(uint32...
function __STATIC_INLINE (line 147) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_CONTROL_NS(...
function __STATIC_INLINE (line 159) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_IPSR(void)
function __STATIC_INLINE (line 173) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_APSR(void)
function __STATIC_INLINE (line 187) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_xPSR(void)
function __STATIC_INLINE (line 201) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PSP(void)
function __STATIC_INLINE (line 216) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PSP_NS(...
function __STATIC_INLINE (line 231) | __attribute__((always_inline)) __STATIC_INLINE void __set_PSP(uint32_t t...
function __STATIC_INLINE (line 243) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PSP_NS(uint...
function __STATIC_INLINE (line 255) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_MSP(void)
function __STATIC_INLINE (line 270) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_MSP_NS(...
function __STATIC_INLINE (line 285) | __attribute__((always_inline)) __STATIC_INLINE void __set_MSP(uint32_t t...
function __STATIC_INLINE (line 297) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_MSP_NS(uint...
function __STATIC_INLINE (line 309) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PRIMASK(void)
function __STATIC_INLINE (line 324) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PRIMASK...
function __STATIC_INLINE (line 339) | __attribute__((always_inline)) __STATIC_INLINE void __set_PRIMASK(uint32...
function __STATIC_INLINE (line 351) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PRIMASK_NS(...
function __STATIC_INLINE (line 403) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_BASEPRI...
function __STATIC_INLINE (line 418) | __attribute__((always_inline)) __STATIC_INLINE void __set_BASEPRI(uint32...
function __STATIC_INLINE (line 430) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_BASEPRI_NS(...
function __STATIC_INLINE (line 443) | __attribute__((always_inline)) __STATIC_INLINE void __set_BASEPRI_MAX(ui...
function __STATIC_INLINE (line 454) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_FAULTMASK(...
function __STATIC_INLINE (line 469) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_FAULTMA...
function __STATIC_INLINE (line 484) | __attribute__((always_inline)) __STATIC_INLINE void __set_FAULTMASK(uint...
function __STATIC_INLINE (line 496) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_FAULTMASK_N...
function __STATIC_INLINE (line 515) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PSPLIM(void)
function __STATIC_INLINE (line 531) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PSPLIM_...
function __STATIC_INLINE (line 546) | __attribute__((always_inline)) __STATIC_INLINE void __set_PSPLIM(uint32_...
function __STATIC_INLINE (line 559) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PSPLIM_NS(u...
function __STATIC_INLINE (line 571) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_MSPLIM(void)
function __STATIC_INLINE (line 588) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_MSPLIM_...
function __STATIC_INLINE (line 603) | __attribute__((always_inline)) __STATIC_INLINE void __set_MSPLIM(uint32_...
function __STATIC_INLINE (line 616) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_MSPLIM_NS(u...
function __STATIC_INLINE (line 634) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_FPSCR(void)
function __STATIC_INLINE (line 653) | __attribute__((always_inline)) __STATIC_INLINE void __set_FPSCR(uint32_t...
function __STATIC_INLINE (line 793) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __REV16(uint32_t...
function __STATIC_INLINE (line 808) | __attribute__((always_inline)) __STATIC_INLINE int32_t __REVSH(int32_t v...
function __STATIC_INLINE (line 828) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __ROR(uint32_t o...
function __STATIC_INLINE (line 850) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t ...
function __STATIC_INLINE (line 893) | __attribute__((always_inline)) __STATIC_INLINE uint8_t __LDREXB(volatile...
function __STATIC_INLINE (line 915) | __attribute__((always_inline)) __STATIC_INLINE uint16_t __LDREXH(volatil...
function __STATIC_INLINE (line 937) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __LDREXW(volatil...
function __STATIC_INLINE (line 954) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXB(uint8_t...
function __STATIC_INLINE (line 971) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXH(uint16_...
function __STATIC_INLINE (line 988) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXW(uint32_...
function __STATIC_INLINE (line 1001) | __attribute__((always_inline)) __STATIC_INLINE void __CLREX(void)
function __STATIC_INLINE (line 1052) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RRX(uint32_t v...
function __STATIC_INLINE (line 1067) | __attribute__((always_inline)) __STATIC_INLINE uint8_t __LDRBT(volatile ...
function __STATIC_INLINE (line 1089) | __attribute__((always_inline)) __STATIC_INLINE uint16_t __LDRHT(volatile...
function __STATIC_INLINE (line 1111) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __LDRT(volatile ...
function __STATIC_INLINE (line 1126) | __attribute__((always_inline)) __STATIC_INLINE void __STRBT(uint8_t valu...
function __STATIC_INLINE (line 1138) | __attribute__((always_inline)) __STATIC_INLINE void __STRHT(uint16_t val...
function __STATIC_INLINE (line 1150) | __attribute__((always_inline)) __STATIC_INLINE void __STRT(uint32_t valu...
function __STATIC_INLINE (line 1168) | __attribute__((always_inline)) __STATIC_INLINE uint8_t __LDAB(volatile u...
function __STATIC_INLINE (line 1183) | __attribute__((always_inline)) __STATIC_INLINE uint16_t __LDAH(volatile ...
function __STATIC_INLINE (line 1198) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __LDA(volatile u...
function __STATIC_INLINE (line 1213) | __attribute__((always_inline)) __STATIC_INLINE void __STLB(uint8_t value...
function __STATIC_INLINE (line 1225) | __attribute__((always_inline)) __STATIC_INLINE void __STLH(uint16_t valu...
function __STATIC_INLINE (line 1237) | __attribute__((always_inline)) __STATIC_INLINE void __STL(uint32_t value...
function __STATIC_INLINE (line 1249) | __attribute__((always_inline)) __STATIC_INLINE uint8_t __LDAEXB(volatile...
function __STATIC_INLINE (line 1264) | __attribute__((always_inline)) __STATIC_INLINE uint16_t __LDAEXH(volatil...
function __STATIC_INLINE (line 1279) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __LDAEX(volatile...
function __STATIC_INLINE (line 1296) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __STLEXB(uint8_t...
function __STATIC_INLINE (line 1313) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __STLEXH(uint16_...
function __STATIC_INLINE (line 1330) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __STLEX(uint32_t...
function __STATIC_INLINE (line 1352) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SADD8(uint32_t...
function __STATIC_INLINE (line 1360) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QADD8(uint32_t...
function __STATIC_INLINE (line 1368) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHADD8(uint32_...
function __STATIC_INLINE (line 1376) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UADD8(uint32_t...
function __STATIC_INLINE (line 1384) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQADD8(uint32_...
function __STATIC_INLINE (line 1392) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHADD8(uint32_...
function __STATIC_INLINE (line 1401) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSUB8(uint32_t...
function __STATIC_INLINE (line 1409) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSUB8(uint32_t...
function __STATIC_INLINE (line 1417) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSUB8(uint32_...
function __STATIC_INLINE (line 1425) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USUB8(uint32_t...
function __STATIC_INLINE (line 1433) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSUB8(uint32_...
function __STATIC_INLINE (line 1441) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSUB8(uint32_...
function __STATIC_INLINE (line 1450) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SADD16(uint32_...
function __STATIC_INLINE (line 1458) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QADD16(uint32_...
function __STATIC_INLINE (line 1466) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHADD16(uint32...
function __STATIC_INLINE (line 1474) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UADD16(uint32_...
function __STATIC_INLINE (line 1482) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQADD16(uint32...
function __STATIC_INLINE (line 1490) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHADD16(uint32...
function __STATIC_INLINE (line 1498) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSUB16(uint32_...
function __STATIC_INLINE (line 1506) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSUB16(uint32_...
function __STATIC_INLINE (line 1514) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSUB16(uint32...
function __STATIC_INLINE (line 1522) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USUB16(uint32_...
function __STATIC_INLINE (line 1530) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSUB16(uint32...
function __STATIC_INLINE (line 1538) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSUB16(uint32...
function __STATIC_INLINE (line 1546) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SASX(uint32_t ...
function __STATIC_INLINE (line 1554) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QASX(uint32_t ...
function __STATIC_INLINE (line 1562) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHASX(uint32_t...
function __STATIC_INLINE (line 1570) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UASX(uint32_t ...
function __STATIC_INLINE (line 1578) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQASX(uint32_t...
function __STATIC_INLINE (line 1586) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHASX(uint32_t...
function __STATIC_INLINE (line 1594) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSAX(uint32_t ...
function __STATIC_INLINE (line 1602) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSAX(uint32_t ...
function __STATIC_INLINE (line 1610) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSAX(uint32_t...
function __STATIC_INLINE (line 1618) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USAX(uint32_t ...
function __STATIC_INLINE (line 1626) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSAX(uint32_t...
function __STATIC_INLINE (line 1634) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSAX(uint32_t...
function __STATIC_INLINE (line 1642) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USAD8(uint32_t...
function __STATIC_INLINE (line 1650) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USADA8(uint32_...
function __STATIC_INLINE (line 1672) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UXTB16(uint32_...
function __STATIC_INLINE (line 1680) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UXTAB16(uint32...
function __STATIC_INLINE (line 1688) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SXTB16(uint32_...
function __STATIC_INLINE (line 1696) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SXTAB16(uint32...
function __STATIC_INLINE (line 1704) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUAD (uint32...
function __STATIC_INLINE (line 1712) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUADX (uint32...
function __STATIC_INLINE (line 1720) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLAD (uint32_...
function __STATIC_INLINE (line 1728) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLADX (uint32...
function __STATIC_INLINE (line 1736) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLALD (uint32...
function __STATIC_INLINE (line 1753) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLALDX (uint3...
function __STATIC_INLINE (line 1770) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUSD (uint32...
function __STATIC_INLINE (line 1778) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUSDX (uint32...
function __STATIC_INLINE (line 1786) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLSD (uint32_...
function __STATIC_INLINE (line 1794) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLSDX (uint32...
function __STATIC_INLINE (line 1802) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLSLD (uint32...
function __STATIC_INLINE (line 1819) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLSLDX (uint3...
function __STATIC_INLINE (line 1836) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SEL (uint32_t...
function __STATIC_INLINE (line 1844) | __attribute__((always_inline)) __STATIC_INLINE int32_t __QADD( int32_t ...
function __STATIC_INLINE (line 1852) | __attribute__((always_inline)) __STATIC_INLINE int32_t __QSUB( int32_t ...
function __STATIC_INLINE (line 1885) | __attribute__((always_inline)) __STATIC_INLINE int32_t __SMMLA (int32_t ...
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_armv8mbl.h
type APSR_Type (line 231) | typedef union
type IPSR_Type (line 261) | typedef union
type xPSR_Type (line 279) | typedef union
type CONTROL_Type (line 318) | typedef union
type NVIC_Type (line 349) | typedef struct
type SCB_Type (line 379) | typedef struct
type SysTick_Type (line 553) | typedef struct
type DWT_Type (line 605) | typedef struct
type TPI_Type (line 720) | typedef struct
type MPU_Type (line 876) | typedef struct
type SAU_Type (line 976) | typedef struct
type CoreDebug_Type (line 1033) | typedef struct
function __STATIC_INLINE (line 1262) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1279) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1298) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1317) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1336) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1351) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1368) | __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn)
function __STATIC_INLINE (line 1390) | __STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 1411) | __STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 1433) | __STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 1457) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __STATIC_INLINE (line 1481) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function __STATIC_INLINE (line 1505) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __STATIC_INLINE (line 1524) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __STATIC_INLINE (line 1539) | __STATIC_INLINE void NVIC_SystemReset(void)
function __STATIC_INLINE (line 1560) | __STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1577) | __STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1596) | __STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1613) | __STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1628) | __STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1643) | __STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1660) | __STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1682) | __STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t pri...
function __STATIC_INLINE (line 1705) | __STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1738) | __STATIC_INLINE uint32_t SCB_GetFPUType(void)
function __STATIC_INLINE (line 1762) | __STATIC_INLINE void TZ_SAU_Enable(void)
function __STATIC_INLINE (line 1773) | __STATIC_INLINE void TZ_SAU_Disable(void)
function __STATIC_INLINE (line 1806) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
function __STATIC_INLINE (line 1835) | __STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_armv8mml.h
type APSR_Type (line 268) | typedef union
type IPSR_Type (line 307) | typedef union
type xPSR_Type (line 325) | typedef union
type CONTROL_Type (line 376) | typedef union
type NVIC_Type (line 415) | typedef struct
type SCB_Type (line 451) | typedef struct
type SCnSCB_Type (line 960) | typedef struct
type SysTick_Type (line 985) | typedef struct
type DWT_Type (line 1152) | typedef struct
type TPI_Type (line 1338) | typedef struct
type MPU_Type (line 1494) | typedef struct
type SAU_Type (line 1600) | typedef struct
type FPU_Type (line 1686) | typedef struct
type CoreDebug_Type (line 1816) | typedef struct
function __STATIC_INLINE (line 2085) | __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
function __STATIC_INLINE (line 2104) | __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void)
function __STATIC_INLINE (line 2116) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2133) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2152) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2171) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2190) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2205) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2222) | __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn)
function __STATIC_INLINE (line 2244) | __STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 2265) | __STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 2287) | __STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 2311) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __STATIC_INLINE (line 2333) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function __STATIC_INLINE (line 2358) | __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, ui...
function __STATIC_INLINE (line 2385) | __STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t Pr...
function __STATIC_INLINE (line 2408) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __STATIC_INLINE (line 2423) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __STATIC_INLINE (line 2434) | __STATIC_INLINE void NVIC_SystemReset(void)
function __STATIC_INLINE (line 2459) | __STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup)
function __STATIC_INLINE (line 2478) | __STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void)
function __STATIC_INLINE (line 2490) | __STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2507) | __STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2526) | __STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2543) | __STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2558) | __STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2573) | __STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2590) | __STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2612) | __STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t pri...
function __STATIC_INLINE (line 2633) | __STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2666) | __STATIC_INLINE uint32_t SCB_GetFPUType(void)
function __STATIC_INLINE (line 2704) | __STATIC_INLINE void TZ_SAU_Enable(void)
function __STATIC_INLINE (line 2715) | __STATIC_INLINE void TZ_SAU_Disable(void)
function __STATIC_INLINE (line 2748) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
function __STATIC_INLINE (line 2777) | __STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks)
function __STATIC_INLINE (line 2820) | __STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch)
function __STATIC_INLINE (line 2841) | __STATIC_INLINE int32_t ITM_ReceiveChar (void)
function __STATIC_INLINE (line 2861) | __STATIC_INLINE int32_t ITM_CheckChar (void)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_cm0.h
type APSR_Type (line 197) | typedef union
type IPSR_Type (line 227) | typedef union
type xPSR_Type (line 245) | typedef union
type CONTROL_Type (line 284) | typedef union
type NVIC_Type (line 312) | typedef struct
type SCB_Type (line 339) | typedef struct
type SysTick_Type (line 446) | typedef struct
function __STATIC_INLINE (line 602) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 619) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 638) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 657) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 676) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 691) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 709) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __STATIC_INLINE (line 733) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function __STATIC_INLINE (line 756) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __STATIC_INLINE (line 771) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __STATIC_INLINE (line 782) | __STATIC_INLINE void NVIC_SystemReset(void)
function __STATIC_INLINE (line 815) | __STATIC_INLINE uint32_t SCB_GetFPUType(void)
function __STATIC_INLINE (line 846) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_cm0plus.h
type APSR_Type (line 208) | typedef union
type IPSR_Type (line 238) | typedef union
type xPSR_Type (line 256) | typedef union
type CONTROL_Type (line 295) | typedef union
type NVIC_Type (line 326) | typedef struct
type SCB_Type (line 353) | typedef struct
type SysTick_Type (line 470) | typedef struct
type MPU_Type (line 522) | typedef struct
function __STATIC_INLINE (line 718) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 735) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 754) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 773) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 792) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 807) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 825) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __STATIC_INLINE (line 849) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function __STATIC_INLINE (line 873) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __STATIC_INLINE (line 892) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __STATIC_INLINE (line 908) | __STATIC_INLINE void NVIC_SystemReset(void)
function __STATIC_INLINE (line 941) | __STATIC_INLINE uint32_t SCB_GetFPUType(void)
function __STATIC_INLINE (line 972) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_cm23.h
type APSR_Type (line 231) | typedef union
type IPSR_Type (line 261) | typedef union
type xPSR_Type (line 279) | typedef union
type CONTROL_Type (line 318) | typedef union
type NVIC_Type (line 349) | typedef struct
type SCB_Type (line 379) | typedef struct
type SysTick_Type (line 553) | typedef struct
type DWT_Type (line 605) | typedef struct
type TPI_Type (line 720) | typedef struct
type MPU_Type (line 876) | typedef struct
type SAU_Type (line 976) | typedef struct
type CoreDebug_Type (line 1033) | typedef struct
function __STATIC_INLINE (line 1262) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1279) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1298) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1317) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1336) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1351) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1368) | __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn)
function __STATIC_INLINE (line 1390) | __STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 1411) | __STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 1433) | __STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 1457) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __STATIC_INLINE (line 1481) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function __STATIC_INLINE (line 1505) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __STATIC_INLINE (line 1524) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __STATIC_INLINE (line 1539) | __STATIC_INLINE void NVIC_SystemReset(void)
function __STATIC_INLINE (line 1560) | __STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1577) | __STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1596) | __STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1613) | __STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1628) | __STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1643) | __STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1660) | __STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1682) | __STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t pri...
function __STATIC_INLINE (line 1705) | __STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 1738) | __STATIC_INLINE uint32_t SCB_GetFPUType(void)
function __STATIC_INLINE (line 1762) | __STATIC_INLINE void TZ_SAU_Enable(void)
function __STATIC_INLINE (line 1773) | __STATIC_INLINE void TZ_SAU_Disable(void)
function __STATIC_INLINE (line 1806) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
function __STATIC_INLINE (line 1835) | __STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_cm3.h
type APSR_Type (line 205) | typedef union
type IPSR_Type (line 239) | typedef union
type xPSR_Type (line 257) | typedef union
type CONTROL_Type (line 308) | typedef union
type NVIC_Type (line 339) | typedef struct
type SCB_Type (line 373) | typedef struct
type SCnSCB_Type (line 654) | typedef struct
type SysTick_Type (line 693) | typedef struct
type DWT_Type (line 848) | typedef struct
type TPI_Type (line 995) | typedef struct
type MPU_Type (line 1151) | typedef struct
type CoreDebug_Type (line 1245) | typedef struct
function __NVIC_SetPriorityGrouping (line 1466) | void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
function __NVIC_GetPriorityGrouping (line 1485) | uint32_t __NVIC_GetPriorityGrouping(void)
function __NVIC_EnableIRQ (line 1497) | void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __NVIC_GetEnableIRQ (line 1514) | uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __NVIC_DisableIRQ (line 1533) | void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __NVIC_GetPendingIRQ (line 1552) | uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __NVIC_SetPendingIRQ (line 1571) | void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __NVIC_ClearPendingIRQ (line 1586) | void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __NVIC_GetActive (line 1603) | uint32_t __NVIC_GetActive(IRQn_Type IRQn)
function __NVIC_SetPriority (line 1625) | void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __NVIC_GetPriority (line 1647) | uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function NVIC_EncodePriority (line 1672) | uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPr...
function NVIC_DecodePriority (line 1699) | void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uin...
function __NVIC_SetVector (line 1722) | void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __NVIC_GetVector (line 1737) | uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __NVIC_SystemReset (line 1748) | void __NVIC_SystemReset(void)
function SCB_GetFPUType (line 1782) | uint32_t SCB_GetFPUType(void)
function SysTick_Config (line 1813) | uint32_t SysTick_Config(uint32_t ticks)
function ITM_SendChar (line 1855) | uint32_t ITM_SendChar (uint32_t ch)
function ITM_ReceiveChar (line 1876) | int32_t ITM_ReceiveChar (void)
function ITM_CheckChar (line 1896) | int32_t ITM_CheckChar (void)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_cm33.h
type APSR_Type (line 268) | typedef union
type IPSR_Type (line 307) | typedef union
type xPSR_Type (line 325) | typedef union
type CONTROL_Type (line 376) | typedef union
type NVIC_Type (line 415) | typedef struct
type SCB_Type (line 451) | typedef struct
type SCnSCB_Type (line 960) | typedef struct
type SysTick_Type (line 985) | typedef struct
type DWT_Type (line 1152) | typedef struct
type TPI_Type (line 1338) | typedef struct
type MPU_Type (line 1494) | typedef struct
type SAU_Type (line 1600) | typedef struct
type FPU_Type (line 1686) | typedef struct
type CoreDebug_Type (line 1816) | typedef struct
function __STATIC_INLINE (line 2085) | __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
function __STATIC_INLINE (line 2104) | __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void)
function __STATIC_INLINE (line 2116) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2133) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2152) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2171) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2190) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2205) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 2222) | __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn)
function __STATIC_INLINE (line 2244) | __STATIC_INLINE uint32_t NVIC_GetTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 2265) | __STATIC_INLINE uint32_t NVIC_SetTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 2287) | __STATIC_INLINE uint32_t NVIC_ClearTargetState(IRQn_Type IRQn)
function __STATIC_INLINE (line 2311) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __STATIC_INLINE (line 2333) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function __STATIC_INLINE (line 2358) | __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, ui...
function __STATIC_INLINE (line 2385) | __STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t Pr...
function __STATIC_INLINE (line 2408) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __STATIC_INLINE (line 2423) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __STATIC_INLINE (line 2434) | __STATIC_INLINE void NVIC_SystemReset(void)
function __STATIC_INLINE (line 2459) | __STATIC_INLINE void TZ_NVIC_SetPriorityGrouping_NS(uint32_t PriorityGroup)
function __STATIC_INLINE (line 2478) | __STATIC_INLINE uint32_t TZ_NVIC_GetPriorityGrouping_NS(void)
function __STATIC_INLINE (line 2490) | __STATIC_INLINE void TZ_NVIC_EnableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2507) | __STATIC_INLINE uint32_t TZ_NVIC_GetEnableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2526) | __STATIC_INLINE void TZ_NVIC_DisableIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2543) | __STATIC_INLINE uint32_t TZ_NVIC_GetPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2558) | __STATIC_INLINE void TZ_NVIC_SetPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2573) | __STATIC_INLINE void TZ_NVIC_ClearPendingIRQ_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2590) | __STATIC_INLINE uint32_t TZ_NVIC_GetActive_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2612) | __STATIC_INLINE void TZ_NVIC_SetPriority_NS(IRQn_Type IRQn, uint32_t pri...
function __STATIC_INLINE (line 2633) | __STATIC_INLINE uint32_t TZ_NVIC_GetPriority_NS(IRQn_Type IRQn)
function __STATIC_INLINE (line 2666) | __STATIC_INLINE uint32_t SCB_GetFPUType(void)
function __STATIC_INLINE (line 2704) | __STATIC_INLINE void TZ_SAU_Enable(void)
function __STATIC_INLINE (line 2715) | __STATIC_INLINE void TZ_SAU_Disable(void)
function __STATIC_INLINE (line 2748) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
function __STATIC_INLINE (line 2777) | __STATIC_INLINE uint32_t TZ_SysTick_Config_NS(uint32_t ticks)
function __STATIC_INLINE (line 2820) | __STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch)
function __STATIC_INLINE (line 2841) | __STATIC_INLINE int32_t ITM_ReceiveChar (void)
function __STATIC_INLINE (line 2861) | __STATIC_INLINE int32_t ITM_CheckChar (void)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_cm4.h
type APSR_Type (line 257) | typedef union
type IPSR_Type (line 296) | typedef union
type xPSR_Type (line 314) | typedef union
type CONTROL_Type (line 369) | typedef union
type NVIC_Type (line 404) | typedef struct
type SCB_Type (line 438) | typedef struct
type SCnSCB_Type (line 717) | typedef struct
type SysTick_Type (line 757) | typedef struct
type DWT_Type (line 912) | typedef struct
type TPI_Type (line 1059) | typedef struct
type MPU_Type (line 1215) | typedef struct
type FPU_Type (line 1309) | typedef struct
type CoreDebug_Type (line 1415) | typedef struct
function __STATIC_INLINE (line 1639) | __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
function __STATIC_INLINE (line 1658) | __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void)
function __STATIC_INLINE (line 1670) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1687) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1706) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1725) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1744) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1759) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1776) | __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn)
function __STATIC_INLINE (line 1798) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __STATIC_INLINE (line 1820) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function __STATIC_INLINE (line 1845) | __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, ui...
function __STATIC_INLINE (line 1872) | __STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t Pr...
function __STATIC_INLINE (line 1895) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __STATIC_INLINE (line 1910) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __STATIC_INLINE (line 1921) | __STATIC_INLINE void __NVIC_SystemReset(void)
function __STATIC_INLINE (line 1955) | __STATIC_INLINE uint32_t SCB_GetFPUType(void)
function __STATIC_INLINE (line 1996) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
function __STATIC_INLINE (line 2038) | __STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch)
function __STATIC_INLINE (line 2059) | __STATIC_INLINE int32_t ITM_ReceiveChar (void)
function __STATIC_INLINE (line 2079) | __STATIC_INLINE int32_t ITM_CheckChar (void)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_cm7.h
type APSR_Type (line 272) | typedef union
type IPSR_Type (line 311) | typedef union
type xPSR_Type (line 329) | typedef union
type CONTROL_Type (line 384) | typedef union
type NVIC_Type (line 419) | typedef struct
type SCB_Type (line 453) | typedef struct
type SCnSCB_Type (line 919) | typedef struct
type SysTick_Type (line 959) | typedef struct
type DWT_Type (line 1114) | typedef struct
type TPI_Type (line 1264) | typedef struct
type MPU_Type (line 1420) | typedef struct
type FPU_Type (line 1514) | typedef struct
type CoreDebug_Type (line 1623) | typedef struct
function __STATIC_INLINE (line 1836) | __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
function __STATIC_INLINE (line 1855) | __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void)
function __STATIC_INLINE (line 1867) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1884) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1903) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1922) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1941) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1956) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1973) | __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn)
function __STATIC_INLINE (line 1995) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __STATIC_INLINE (line 2017) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function __STATIC_INLINE (line 2042) | __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, ui...
function __STATIC_INLINE (line 2069) | __STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t Pr...
function __STATIC_INLINE (line 2092) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __STATIC_INLINE (line 2107) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __STATIC_INLINE (line 2118) | __STATIC_INLINE void NVIC_SystemReset(void)
function __STATIC_INLINE (line 2152) | __STATIC_INLINE uint32_t SCB_GetFPUType(void)
function __STATIC_INLINE (line 2193) | __STATIC_INLINE void SCB_EnableICache (void)
function __STATIC_INLINE (line 2212) | __STATIC_INLINE void SCB_DisableICache (void)
function __STATIC_INLINE (line 2229) | __STATIC_INLINE void SCB_InvalidateICache (void)
function __STATIC_INLINE (line 2245) | __STATIC_INLINE void SCB_EnableDCache (void)
function __STATIC_INLINE (line 2283) | __STATIC_INLINE void SCB_DisableDCache (void)
function __STATIC_INLINE (line 2321) | __STATIC_INLINE void SCB_InvalidateDCache (void)
function __STATIC_INLINE (line 2356) | __STATIC_INLINE void SCB_CleanDCache (void)
function __STATIC_INLINE (line 2391) | __STATIC_INLINE void SCB_CleanInvalidateDCache (void)
function __STATIC_INLINE (line 2428) | __STATIC_INLINE void SCB_InvalidateDCache_by_Addr (uint32_t *addr, int32...
function __STATIC_INLINE (line 2455) | __STATIC_INLINE void SCB_CleanDCache_by_Addr (uint32_t *addr, int32_t ds...
function __STATIC_INLINE (line 2482) | __STATIC_INLINE void SCB_CleanInvalidateDCache_by_Addr (uint32_t *addr, ...
function __STATIC_INLINE (line 2528) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
function __STATIC_INLINE (line 2570) | __STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch)
function __STATIC_INLINE (line 2591) | __STATIC_INLINE int32_t ITM_ReceiveChar (void)
function __STATIC_INLINE (line 2611) | __STATIC_INLINE int32_t ITM_CheckChar (void)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_sc000.h
type APSR_Type (line 203) | typedef union
type IPSR_Type (line 233) | typedef union
type xPSR_Type (line 251) | typedef union
type CONTROL_Type (line 290) | typedef union
type NVIC_Type (line 318) | typedef struct
type SCB_Type (line 345) | typedef struct
type SCnSCB_Type (line 458) | typedef struct
type SysTick_Type (line 481) | typedef struct
type MPU_Type (line 533) | typedef struct
function __STATIC_INLINE (line 730) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 747) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 766) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 785) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 804) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 819) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 837) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __STATIC_INLINE (line 861) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function __STATIC_INLINE (line 884) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __STATIC_INLINE (line 899) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __STATIC_INLINE (line 910) | __STATIC_INLINE void NVIC_SystemReset(void)
function __STATIC_INLINE (line 943) | __STATIC_INLINE uint32_t SCB_GetFPUType(void)
function __STATIC_INLINE (line 974) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/core_sc300.h
type APSR_Type (line 204) | typedef union
type IPSR_Type (line 238) | typedef union
type xPSR_Type (line 256) | typedef union
type CONTROL_Type (line 307) | typedef union
type NVIC_Type (line 338) | typedef struct
type SCB_Type (line 372) | typedef struct
type SCnSCB_Type (line 650) | typedef struct
type SysTick_Type (line 674) | typedef struct
type DWT_Type (line 829) | typedef struct
type TPI_Type (line 976) | typedef struct
type MPU_Type (line 1132) | typedef struct
type CoreDebug_Type (line 1226) | typedef struct
function __STATIC_INLINE (line 1436) | __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
function __STATIC_INLINE (line 1455) | __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void)
function __STATIC_INLINE (line 1467) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1484) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1503) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1522) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1541) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1556) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
function __STATIC_INLINE (line 1573) | __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn)
function __STATIC_INLINE (line 1595) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
function __STATIC_INLINE (line 1617) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
function __STATIC_INLINE (line 1642) | __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, ui...
function __STATIC_INLINE (line 1669) | __STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t Pr...
function __STATIC_INLINE (line 1692) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
function __STATIC_INLINE (line 1707) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
function __STATIC_INLINE (line 1718) | __STATIC_INLINE void NVIC_SystemReset(void)
function __STATIC_INLINE (line 1752) | __STATIC_INLINE uint32_t SCB_GetFPUType(void)
function __STATIC_INLINE (line 1783) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
function __STATIC_INLINE (line 1825) | __STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch)
function __STATIC_INLINE (line 1846) | __STATIC_INLINE int32_t ITM_ReceiveChar (void)
function __STATIC_INLINE (line 1866) | __STATIC_INLINE int32_t ITM_CheckChar (void)
FILE: Huawei_LiteOS/arch/arm/common/cmsis/tz_context.h
type TZ_ModuleId_t (line 38) | typedef uint32_t TZ_ModuleId_t;
type TZ_MemoryId_t (line 42) | typedef uint32_t TZ_MemoryId_t;
FILE: Huawei_LiteOS/arch/msp430/include/los_hw.h
type TSK_CONTEXT_S (line 67) | typedef struct tagTskContext
FILE: Huawei_LiteOS/arch/msp430/include/los_hwi.h
type hwi_int_handle (line 55) | struct hwi_int_handle
FILE: Huawei_LiteOS/arch/msp430/src/los_hw.c
function LOS_Schedule (line 42) | void LOS_Schedule (void)
function osTaskExit (line 63) | static void osTaskExit (void)
function osEnterSleep (line 132) | void osEnterSleep (void)
FILE: Huawei_LiteOS/arch/msp430/src/los_hw_tick.c
function UINT32 (line 41) | UINT32 osTickStart (void)
FILE: Huawei_LiteOS/arch/msp430/src/los_hwi.c
type hwi_int_handle (line 44) | struct hwi_int_handle
type hwi_int_handle (line 48) | struct hwi_int_handle
function osHwiInit (line 59) | void osHwiInit (void)
function osHwiDispatch (line 64) | void osHwiDispatch (int vector)
function UINT32 (line 103) | UINT32 LOS_HwiCreate (int vector, int prio, int mode,
function UINT32 (line 149) | UINT32 LOS_HwiDelete (int vector)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/agent_list.h
type atiny_dl_list (line 59) | typedef struct atiny_dl_list
function ATINY_INLINE (line 67) | ATINY_INLINE void atiny_list_init(atiny_dl_list *list)
function ATINY_INLINE (line 75) | ATINY_INLINE void atiny_list_add(atiny_dl_list *list, atiny_dl_list *node)
function ATINY_INLINE (line 83) | ATINY_INLINE void atiny_list_insert_tail(atiny_dl_list *list, atiny_dl_l...
function ATINY_INLINE (line 88) | ATINY_INLINE atiny_dl_list * atiny_list_get_head(atiny_dl_list *header)
function ATINY_INLINE (line 93) | ATINY_INLINE void atiny_list_delete(atiny_dl_list *node)
function ATINY_INLINE (line 101) | ATINY_INLINE int atiny_list_empty(atiny_dl_list *node)
function ATINY_INLINE (line 127) | ATINY_INLINE void ATINY_ListDel(atiny_dl_list *pstPrevNode, atiny_dl_lis...
function ATINY_INLINE (line 133) | ATINY_INLINE void ATINY_ListDelInit(atiny_dl_list *pstList)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/agenttiny.c
function atiny_check_bootstrap_init_param (line 64) | static int atiny_check_bootstrap_init_param(atiny_param_t *atiny_params)
function atiny_check_psk_init_param (line 103) | static int atiny_check_psk_init_param(atiny_param_t *atiny_params)
function atiny_init (line 142) | int atiny_init(atiny_param_t *atiny_params, void **phandle)
function atiny_set_bootstrap_sequence_state (line 202) | void atiny_set_bootstrap_sequence_state(atiny_param_t *atiny_params, lwm...
function atiny_init_objects (line 214) | int atiny_init_objects(atiny_param_t *atiny_params, const atiny_device_i...
function lwm2m_poll (line 320) | static int lwm2m_poll(handle_data_t *phandle, uint32_t *timeout)
function atiny_destroy (line 349) | void atiny_destroy(void *handle)
function atiny_event_handle (line 416) | void atiny_event_handle(module_type_t type, int code, const char *arg, i...
function reboot_check (line 475) | void reboot_check(void)
function atiny_connection_err_notify (line 483) | static void atiny_connection_err_notify(lwm2m_context_t *context, connec...
function atiny_handle_reconnect (line 502) | static void atiny_handle_reconnect(handle_data_t *handle)
function atiny_bind (line 512) | int atiny_bind(atiny_device_info_t *device_info, void *phandle)
function atiny_deinit (line 576) | void atiny_deinit(void *phandle)
function atiny_data_report (line 593) | int atiny_data_report(void *phandle, data_report_t *report_data)
function atiny_data_change (line 643) | int atiny_data_change(void *phandle, const char *data_type)
function observe_handle_ack (line 672) | void observe_handle_ack(lwm2m_transaction_t *transacP, void *message)
function atiny_reconnect (line 689) | int atiny_reconnect(void *phandle)
function atiny_set_reboot_flag (line 704) | void atiny_set_reboot_flag()
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_context.h
type handle_data_t (line 73) | typedef struct
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_fota_manager.c
type atiny_fota_manager_tag_s (line 41) | struct atiny_fota_manager_tag_s
function atiny_fota_manager_get_state (line 70) | int atiny_fota_manager_get_state(const atiny_fota_manager_s *thi)
function atiny_fota_manager_get_rpt_state (line 76) | int atiny_fota_manager_get_rpt_state(const atiny_fota_manager_s *thi)
function atiny_fota_manager_get_update_result (line 82) | int atiny_fota_manager_get_update_result(const atiny_fota_manager_s *thi)
function atiny_fota_manager_set_update_result (line 87) | void atiny_fota_manager_set_update_result(atiny_fota_manager_s *thi, ati...
function atiny_fota_manager_get_deliver_method (line 93) | int atiny_fota_manager_get_deliver_method(const atiny_fota_manager_s *thi)
function atiny_fota_manager_start_download (line 98) | int atiny_fota_manager_start_download(atiny_fota_manager_s *thi, const c...
function atiny_fota_manager_execute_update (line 131) | int atiny_fota_manager_execute_update(atiny_fota_manager_s *thi)
function atiny_fota_manager_finish_download (line 152) | int atiny_fota_manager_finish_download(atiny_fota_manager_s *thi, int re...
function atiny_fota_manager_repot_result (line 172) | int atiny_fota_manager_repot_result(atiny_fota_manager_s *thi)
function atiny_fota_manager_set_state (line 186) | int atiny_fota_manager_set_state(atiny_fota_manager_s *thi, atiny_fota_s...
function atiny_fota_manager_rpt_state (line 215) | int atiny_fota_manager_rpt_state(atiny_fota_manager_s *thi, atiny_fota_s...
function atiny_fota_manager_save_rpt_state (line 228) | void atiny_fota_manager_save_rpt_state(atiny_fota_manager_s *thi, atiny_...
function atiny_fota_manager_flag_read (line 240) | static int atiny_fota_manager_flag_read(void* buf, int32_t len)
function atiny_fota_manager_flag_write (line 252) | static int atiny_fota_manager_flag_write(const void* buf, int32_t len)
function atiny_fota_manager_set_storage_device (line 266) | int atiny_fota_manager_set_storage_device(atiny_fota_manager_s *thi)
function pack_storage_device_api_s (line 306) | pack_storage_device_api_s *atiny_fota_manager_get_storage_device(atiny_f...
function atiny_fota_manager_update_notify (line 313) | void atiny_fota_manager_update_notify(firmware_update_rst_e rst, void *p...
function atiny_fota_manager_init (line 318) | void atiny_fota_manager_init(atiny_fota_manager_s *thi)
function atiny_fota_manager_destroy (line 331) | void atiny_fota_manager_destroy(atiny_fota_manager_s *thi)
function atiny_fota_manager_set_lwm2m_context (line 344) | int atiny_fota_manager_set_lwm2m_context(atiny_fota_manager_s *thi, lwm2...
function lwm2m_context_t (line 350) | lwm2m_context_t *atiny_fota_manager_get_lwm2m_context(atiny_fota_manager...
function atiny_fota_manager_rcv_notify_ack (line 356) | static int atiny_fota_manager_rcv_notify_ack(atiny_fota_manager_s *thi, ...
function atiny_fota_manager_notify_ack_callback (line 369) | static void atiny_fota_manager_notify_ack_callback(atiny_report_type_e t...
function atiny_fota_manager_get_data_cfg (line 382) | void atiny_fota_manager_get_data_cfg(const atiny_fota_manager_s *thi, lw...
function atiny_fota_manager_s (line 400) | atiny_fota_manager_s *atiny_fota_manager_get_instance(void)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_fota_manager.h
type atiny_fota_state_e (line 76) | typedef int atiny_fota_state_e;
type atiny_update_result_e (line 86) | typedef int atiny_update_result_e;
type atiny_fota_manager_tag_s (line 94) | struct atiny_fota_manager_tag_s
type atiny_fota_manager_s (line 95) | typedef struct atiny_fota_manager_tag_s atiny_fota_manager_s;
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_fota_state.c
function atiny_fota_state_default_handle (line 41) | static int atiny_fota_state_default_handle(struct atiny_fota_state_tag_s...
function atiny_fota_state_init (line 51) | void atiny_fota_state_init(atiny_fota_state_s *thi, atiny_fota_manager_s...
function atiny_fota_start_download (line 62) | static int atiny_fota_start_download(atiny_fota_state_s *thi, const char...
function atiny_fota_idle_state_recv_notify_ack (line 72) | static int atiny_fota_idle_state_recv_notify_ack(atiny_fota_state_s *thi...
function atiny_fota_idle_state_get_result (line 114) | static int atiny_fota_idle_state_get_result(void)
function atiny_fota_idle_state_int_report_result (line 127) | int atiny_fota_idle_state_int_report_result(atiny_fota_idle_state_s *thi)
function atiny_fota_idle_state_report_result (line 168) | static int atiny_fota_idle_state_report_result(atiny_fota_state_s *thi)
function atiny_fota_idle_state_init (line 196) | void atiny_fota_idle_state_init(atiny_fota_idle_state_s *thi, atiny_fota...
function atiny_fota_downloading_state_finish_download (line 204) | static int atiny_fota_downloading_state_finish_download(atiny_fota_state...
function atiny_fota_downloading_state_recv_notify_ack (line 216) | static int atiny_fota_downloading_state_recv_notify_ack(atiny_fota_state...
function atiny_fota_downloading_state_init (line 238) | void atiny_fota_downloading_state_init(atiny_fota_downloading_state_s *t...
function atiny_fota_downloaded_state_execute_update (line 245) | static int atiny_fota_downloaded_state_execute_update(atiny_fota_state_s...
function atiny_fota_downloaded_state_recv_notify_ack (line 261) | static int atiny_fota_downloaded_state_recv_notify_ack(atiny_fota_state_...
function atiny_fota_downloaded_state_init (line 337) | void atiny_fota_downloaded_state_init(atiny_fota_downloaded_state_s *thi...
function atiny_fota_updating_state_init (line 345) | void atiny_fota_updating_state_init(atiny_fota_updating_state_s *thi, at...
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_fota_state.h
type atiny_fota_state_s (line 80) | typedef struct atiny_fota_state_tag_s
type atiny_fota_idle_state_s (line 90) | typedef struct
type atiny_fota_downloading_state_s (line 98) | typedef struct atiny_fota_downloading_state_tag_s
type atiny_fota_downloading_state_s (line 103) | typedef atiny_fota_downloading_state_s atiny_fota_downloaded_state_s;
type atiny_fota_downloading_state_s (line 104) | typedef atiny_fota_downloading_state_s atiny_fota_updating_state_s;
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_rpt.c
type atiny_rpt_list_t (line 39) | typedef struct _atiny_rpt_list_t
type atiny_rpt_node_t (line 48) | typedef struct
function atiny_is_uri_equal (line 59) | static int atiny_is_uri_equal(const lwm2m_uri_t *uri0, const lwm2m_uri_t...
function atiny_rpt_list_t (line 70) | static atiny_rpt_list_t *atiny_find_rpt_list(const lwm2m_uri_t *uri)
function atiny_free_list (line 88) | static void atiny_free_list(atiny_dl_list *list, void(*free_data)(atiny...
function atiny_visit_list (line 105) | static void atiny_visit_list(atiny_dl_list *list, void(*visit_data)(ati...
function atiny_clear_rpt_list_node_data (line 116) | static void atiny_clear_rpt_list_node_data(atiny_dl_list *node, void *r...
function atiny_clear_rpt_list (line 133) | static void atiny_clear_rpt_list(atiny_dl_list *node, void *result)
function atiny_notify_stack_rpt_data_change (line 139) | static void atiny_notify_stack_rpt_data_change(atiny_dl_list *node, void...
function atiny_init_rpt (line 150) | int atiny_init_rpt(void)
function atiny_add_rpt_uri (line 164) | int atiny_add_rpt_uri(const lwm2m_uri_t *uri, rpt_list_t *list)
function atiny_rm_rpt_uri (line 220) | int atiny_rm_rpt_uri(const lwm2m_uri_t *uri)
function atiny_dequeue_rpt_data (line 257) | int atiny_dequeue_rpt_data(rpt_list_t rpt_list, data_report_t *data)
function atiny_queue_rpt_data (line 296) | int atiny_queue_rpt_data(const lwm2m_uri_t *uri, const data_report_t *data)
function atiny_clear_rpt_data (line 354) | int atiny_clear_rpt_data(const lwm2m_uri_t *uri, int result)
function atiny_step_rpt (line 390) | int atiny_step_rpt(lwm2m_context_t *context)
function atiny_destroy_rpt (line 398) | void atiny_destroy_rpt(void)
function atiny_set_max_rpt_cnt (line 405) | int atiny_set_max_rpt_cnt(const lwm2m_uri_t *uri, uint32_t max_rpt_cnt)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_rpt.h
function ATINY_INLINE (line 47) | ATINY_INLINE void get_instance_uri(uint16_t object_id, uint16_t instance...
function ATINY_INLINE (line 59) | ATINY_INLINE void get_resource_uri(uint16_t object_id, uint16_t instance...
type _atiny_rpt_list_t (line 71) | struct _atiny_rpt_list_t
type _atiny_rpt_list_t (line 72) | struct _atiny_rpt_list_t
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/connection.c
function inc_connection_stat (line 68) | static inline void inc_connection_stat(connection_t *connection, connect...
function connection_parse_host_ip (line 86) | int connection_parse_host_ip(char *uri, char **parsed_host, char **parse...
function connection_striger_server_initiated_bs (line 152) | void connection_striger_server_initiated_bs(connection_t * sessionH)
function connection_connect_dtls (line 160) | int connection_connect_dtls(connection_t *connP, security_instance_t *ta...
function connection_t (line 226) | connection_t *connection_create(connection_t *connList,
function connection_free (line 335) | void connection_free(connection_t *connP)
function lwm2m_close_connection (line 390) | void lwm2m_close_connection(void *sessionH, void *userData)
function lwm2m_buffer_recv (line 429) | int lwm2m_buffer_recv(void *sessionH, uint8_t *buffer, size_t length, ui...
function connection_is_valid (line 460) | static bool connection_is_valid(void *user_data, void *session)
function lwm2m_buffer_send (line 482) | uint8_t lwm2m_buffer_send(void *sessionH,
function lwm2m_session_is_equal (line 523) | bool lwm2m_session_is_equal(void *session1, void *session2, void *userData)
function lwm2m_register_connection_err_notify (line 528) | void lwm2m_register_connection_err_notify(lwm2m_connection_err_notify_t ...
function lwm2m_step_striger_server_initiated_bs (line 534) | void lwm2m_step_striger_server_initiated_bs(connection_t * sessionH)
function lwm2m_stop_striger_server_initiated_bs (line 542) | void lwm2m_stop_striger_server_initiated_bs(connection_t * sessionH)
function lwm2m_is_sec_obj_uri_valid (line 552) | bool lwm2m_is_sec_obj_uri_valid(uint16_t secObjInstID, void *userData)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/connection.h
type connection_err_e (line 73) | typedef enum
type connection_t (line 80) | typedef struct _connection_t
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/firmware_update.c
type fw_update_record_t (line 46) | typedef struct fw_update_record
function firmware_download_reply (line 64) | static void firmware_download_reply(lwm2m_transaction_t *transacP,
function record_fw_uri (line 177) | static int record_fw_uri(char *uri, int uri_len)
function update_uri_info (line 197) | static int update_uri_info(char *uri, int uri_len, unsigned char *update...
function set_firmware_update_notify (line 230) | void set_firmware_update_notify(firmware_update_notify notify_cb, void *...
function parse_firmware_uri (line 238) | int parse_firmware_uri(char *uri, int uri_len)
function start_firmware_download (line 279) | int start_firmware_download(lwm2m_context_t *contextP, char *uri,
function clean_firmware_record (line 366) | void clean_firmware_record(void)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/firmware_update.h
type firmware_update_rst_e (line 38) | typedef enum firmware_update_rst
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_access_control.c
type acc_ctrl_ri_t (line 78) | typedef struct acc_ctrl_ri_s
type acc_ctrl_oi_t (line 87) | typedef struct acc_ctrl_oi_s
function prv_set_tlv (line 100) | static uint8_t prv_set_tlv(lwm2m_data_t *dataP, acc_ctrl_oi_t *accCtrlOiP)
function prv_read (line 145) | static uint8_t prv_read(uint16_t instanceId, int *numDataP,
function prv_add_ac_val (line 202) | static bool prv_add_ac_val(acc_ctrl_oi_t *accCtrlOiP,
function prv_write_resources (line 225) | static uint8_t prv_write_resources(uint16_t instanceId, int numData,
function prv_write (line 385) | static uint8_t prv_write(uint16_t instanceId, int numData,
function prv_delete (line 391) | static uint8_t prv_delete(uint16_t id, lwm2m_object_t *objectP)
function prv_create (line 405) | static uint8_t prv_create(uint16_t objInstId, int numData,
function lwm2m_object_t (line 434) | lwm2m_object_t *acc_ctrl_create_object(void)
function acl_ctrl_free_object (line 461) | void acl_ctrl_free_object(lwm2m_object_t *objectP)
function acc_ctrl_obj_add_inst (line 476) | bool acc_ctrl_obj_add_inst (lwm2m_object_t *accCtrlObjP, uint16_t instId,
function acc_ctrl_oi_add_ac_val (line 512) | bool acc_ctrl_oi_add_ac_val (lwm2m_object_t *accCtrlObjP, uint16_t instId,
function acc_ctrl_oi_t (line 525) | static acc_ctrl_oi_t *prv_get_acc_instance(acc_ctrl_oi_t *accCtrlOiP, ui...
function acc_ctrl_ri_t (line 541) | static acc_ctrl_ri_t *prv_get_acl_instance(acc_ctrl_ri_t *accCtrlRiP, ui...
function prv_auth_match (line 554) | static inline bool prv_auth_match(OBJ_ACC_OPERATE op, uint16_t auth_op)
function prv_check_instance_auth (line 559) | static bool prv_check_instance_auth(acc_ctrl_oi_t *accCtrlOiP, uint16_t ...
function prv_acc_self_auth_check (line 578) | static uint8_t prv_acc_self_auth_check(acc_ctrl_oi_t *accCtrlOiP, lwm2m_...
function prv_pre_auth_check (line 610) | static uint8_t prv_pre_auth_check(acc_ctrl_oi_t *accCtrlOiP, lwm2m_uri_t...
function prv_post_action_check (line 644) | static uint8_t prv_post_action_check(lwm2m_uri_t *uri, OBJ_ACC_OPERATE op)
function prv_get_srv_cnt (line 688) | static int prv_get_srv_cnt(lwm2m_server_t *serverP)
function acc_auth_operate (line 705) | uint8_t acc_auth_operate(lwm2m_context_t *contextP, lwm2m_uri_t *uri,
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_binary_app_data_container.c
type plat_instance_t (line 65) | typedef struct _prv_instance_
function prv_output_buffer (line 81) | static void prv_output_buffer(uint8_t *buffer,
function prv_read_data (line 118) | static uint8_t prv_read_data(plat_instance_t *targetP,
function prv_destroy_data_buf (line 177) | static void prv_destroy_data_buf(int data_number, lwm2m_data_t *data_array)
function prv_read (line 200) | static uint8_t prv_read(uint16_t instanceId,
function prv_discover (line 247) | static uint8_t prv_discover(uint16_t instanceId,
function prv_write (line 283) | static uint8_t prv_write(uint16_t instanceId,
function prv_delete (line 312) | static uint8_t prv_delete(uint16_t id,
function prv_create (line 328) | static uint8_t prv_create(uint16_t instanceId,
function prv_exec (line 371) | static uint8_t prv_exec(uint16_t instanceId,
function display_binary_app_data_object (line 404) | void display_binary_app_data_object(lwm2m_object_t *object)
function lwm2m_object_t (line 419) | lwm2m_object_t *get_binary_app_data_object(atiny_param_t *atiny_params)
function free_binary_app_data_object_rpt (line 480) | static void free_binary_app_data_object_rpt(lwm2m_object_t *object)
function free_binary_app_data_object (line 492) | void free_binary_app_data_object(lwm2m_object_t *object)
function set_binary_app_data_object_rpt_max_cnt (line 504) | void set_binary_app_data_object_rpt_max_cnt(uint32_t max_rpt_cnt)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_comm.h
type client_data_t (line 75) | typedef struct
type security_instance_t (line 83) | typedef struct _security_instance_
type data_node_t (line 106) | typedef struct _data_node_t
type OBJ_ACC_OPERATE (line 173) | typedef enum
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_connectivity_moni.c
type conn_m_data_t (line 109) | typedef struct
function prv_set_value (line 119) | static uint8_t prv_set_value(lwm2m_data_t *dataP,
function prv_read (line 220) | static uint8_t prv_read(uint16_t instanceId,
function lwm2m_object_t (line 275) | lwm2m_object_t *get_object_conn_m(atiny_param_t *atiny_params)
function free_object_conn_m (line 343) | void free_object_conn_m(lwm2m_object_t *objectP)
function connectivity_moni_change (line 350) | uint8_t connectivity_moni_change(lwm2m_data_t *dataArray,
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_connectivity_stat.c
type conn_s_data_t (line 78) | typedef struct
function prv_set_tlv (line 90) | static uint8_t prv_set_tlv(lwm2m_data_t *dataP, conn_s_data_t *connStDataP)
function prv_read (line 117) | static uint8_t prv_read(uint16_t instanceId, int *numDataP, lwm2m_data_t...
function prv_resetCounter (line 163) | static void prv_resetCounter(lwm2m_object_t *objectP, bool start)
function prv_exec (line 176) | static uint8_t prv_exec(uint16_t instanceId, uint16_t resourceId,
function conn_s_updateTxStatistic (line 197) | void conn_s_updateTxStatistic(lwm2m_object_t *objectP, uint16_t txDataBy...
function conn_s_updateRxStatistic (line 212) | void conn_s_updateRxStatistic(lwm2m_object_t *objectP, uint16_t rxDataBy...
function lwm2m_object_t (line 229) | lwm2m_object_t *get_object_conn_s(void)
function free_object_conn_s (line 287) | void free_object_conn_s(lwm2m_object_t *objectP)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_device.c
function prv_check_time_offset (line 125) | static int prv_check_time_offset(char *buffer,
function prv_set_value (line 164) | static uint8_t prv_set_value(lwm2m_data_t *dataP)
function prv_device_read (line 392) | static uint8_t prv_device_read(uint16_t instanceId,
function prv_device_discover (line 452) | static uint8_t prv_device_discover(uint16_t instanceId,
function prv_device_write (line 534) | static uint8_t prv_device_write(uint16_t instanceId,
function prv_device_execute (line 616) | static uint8_t prv_device_execute(uint16_t instanceId,
function display_device_object (line 661) | void display_device_object(lwm2m_object_t *object)
function lwm2m_object_t (line 669) | lwm2m_object_t *get_object_device(atiny_param_t *atiny_params, const cha...
function free_object_device (line 717) | void free_object_device(lwm2m_object_t *objectP)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_firmware.c
function prv_firmware_read (line 92) | static uint8_t prv_firmware_read(uint16_t instanceId,
function prv_firmware_write (line 206) | static uint8_t prv_firmware_write(uint16_t instanceId,
function prv_firmware_execute (line 259) | static uint8_t prv_firmware_execute(uint16_t instanceId,
function lwm2m_object_t (line 306) | lwm2m_object_t *get_object_firmware(atiny_param_t *atiny_params)
function free_object_firmware (line 358) | void free_object_firmware(lwm2m_object_t *objectP)
function lwm2m_object_t (line 376) | lwm2m_object_t *get_object_firmware(atiny_param_t *atiny_params)
function free_object_firmware (line 383) | void free_object_firmware(lwm2m_object_t *objectP)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_location.c
function prv_res2tlv (line 99) | static uint8_t prv_res2tlv(lwm2m_data_t *dataP)
function prv_location_read (line 199) | static uint8_t prv_location_read(uint16_t objInstId,
function display_location_object (line 245) | void display_location_object(lwm2m_object_t *object)
function lwm2m_object_t (line 274) | lwm2m_object_t *get_object_location(void)
function free_object_location (line 310) | void free_object_location(lwm2m_object_t *object)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_security.c
function prv_get_value (line 82) | static uint8_t prv_get_value(lwm2m_data_t *dataP,
function prv_security_read (line 144) | static uint8_t prv_security_read(uint16_t instanceId,
function prv_security_write (line 198) | static uint8_t prv_security_write(uint16_t instanceId,
function prv_security_delete (line 413) | static uint8_t prv_security_delete(uint16_t id,
function prv_security_create (line 430) | static uint8_t prv_security_create(uint16_t instanceId,
function copy_security_object (line 460) | void copy_security_object(lwm2m_object_t *objectDest, lwm2m_object_t *ob...
function display_security_object (line 502) | void display_security_object(lwm2m_object_t *object)
function clean_security_object (line 518) | void clean_security_object(lwm2m_object_t *objectP)
function lwm2m_object_t (line 548) | lwm2m_object_t *get_security_object(uint16_t serverId, atiny_param_t *at...
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_server.c
type server_instance_t (line 74) | typedef struct _server_instance_
function prv_get_value (line 87) | static uint8_t prv_get_value(lwm2m_data_t *dataP,
function prv_server_read (line 131) | static uint8_t prv_server_read(uint16_t instanceId,
function prv_server_discover (line 179) | static uint8_t prv_server_discover(uint16_t instanceId,
function prv_set_int_value (line 239) | static uint8_t prv_set_int_value(lwm2m_data_t *dataArray, uint32_t *data)
function prv_server_check_binding_valid (line 263) | bool prv_server_check_binding_valid(const char *binding, size_t size)
function prv_server_write (line 279) | static uint8_t prv_server_write(uint16_t instanceId,
function prv_server_execute (line 386) | static uint8_t prv_server_execute(uint16_t instanceId,
function prv_server_delete (line 412) | static uint8_t prv_server_delete(uint16_t id,
function prv_server_create (line 425) | static uint8_t prv_server_create(uint16_t instanceId,
function copy_server_object (line 454) | void copy_server_object(lwm2m_object_t *objectDest, lwm2m_object_t *obje...
function display_server_object (line 486) | void display_server_object(lwm2m_object_t *object)
function lwm2m_object_t (line 502) | lwm2m_object_t *get_server_object(int serverId,
function clean_server_object (line 564) | void clean_server_object(lwm2m_object_t *object)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/platform_adapter.c
function lwm2m_free (line 65) | void lwm2m_free(void *p)
function lwm2m_strncmp (line 84) | int lwm2m_strncmp(const char *s1,
function time_t (line 91) | time_t lwm2m_gettime(void)
function lwm2m_rand (line 96) | int lwm2m_rand(void *output, size_t len)
function lwm2m_delay (line 101) | void lwm2m_delay(uint32_t second)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/util_timer.c
function timer_init (line 40) | void timer_init(util_timer_t *timer, time_t interval, void(*callback)(vo...
function timer_start (line 49) | void timer_start(util_timer_t *timer)
function timer_stop (line 54) | void timer_stop(util_timer_t *timer)
function timer_step (line 58) | void timer_step(util_timer_t *timer)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/util_timer.h
type util_timer_t (line 58) | typedef struct
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_mqtt/flash_manager.c
function flash_manager_parse (line 49) | static int flash_manager_parse(const char *buf, uint32_t len, flash_info...
function flash_manager_get_need_len (line 90) | static int flash_manager_get_need_len(const flash_info_s *flash_info, ui...
function flash_manager_write_buffer (line 109) | static void flash_manager_write_buffer(const flash_info_s *flash_info, c...
function flash_manager_init (line 131) | void flash_manager_init(int (*cmd_ioctl)(mqtt_cmd_e cmd, void *arg, int3...
function flash_manager_read (line 136) | int flash_manager_read(flash_info_s *flash_info)
function flash_manager_write (line 180) | int flash_manager_write(const flash_info_s *flash_info)
function flash_manager_destroy_flash_info (line 209) | void flash_manager_destroy_flash_info(flash_info_s *flash_info)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_mqtt/flash_manager.h
type flash_info_s (line 72) | typedef struct
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_mqtt/hmac.c
function mbedtls_hmac_calc (line 46) | int mbedtls_hmac_calc(mbedtls_hmac_t *hmac_info)
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_mqtt/hmac.h
type mbedtls_hmac_t (line 45) | typedef struct _mbedtls_hmac_t
FILE: Huawei_LiteOS/components/connectivity/agent_tiny/atiny_mqtt/mqtt_client.c
type mqtt_dynamic_connect_state_e (line 60) | typedef enum
type mqtt_dynamic_info_s (line 66) | typedef struct
type mqtt_client_tag_s (line 76) | struct mqtt_client_tag_s
function mqtt_cmd_ioctl (line 94) | static int mqtt_cmd_ioctl(mqtt_cmd_e cmd, void *arg, int32_t len)
function mqtt_free_params (line 106) | static void mqtt_free_params(mqtt_param_s *param)
function mqtt_check_param (line 125) | static int mqtt_check_param(const mqtt_param_s *param)
function mqtt_dup_param (line 159) | static int mqtt_dup_param(mqtt_param_s *dest, const mqtt_param_s *src)
function mqtt_free_device_info (line 224) | static void mqtt_free_device_info(mqtt_device_info_s *info)
function mqtt_free_dynamic_info (line 239) | static void mqtt_free_dynamic_info(mqtt_client_s* handle)
function mqtt_check_device_info (line 251) | static int mqtt_check_device_info(const mqtt_device_info_s *info)
function mqtt_dup_device_info (line 288) | static int mqtt_dup_device_info(mqtt_device_info_s *dest, const mqtt_dev...
function mqtt_is_connectting_with_deviceid (line 334) | static bool mqtt_is_connectting_with_deviceid(const mqtt_client_s* handle)
function mqtt_bin_to_str (line 387) | static void mqtt_bin_to_str(const uint8_t *bin_buf, char *str_buf, uint3...
function mqtt_destroy_data_connection_info (line 430) | static void mqtt_destroy_data_connection_info(MQTTPacket_connectData *data)
function mqtt_get_connection_info (line 436) | static int mqtt_get_connection_info(mqtt_client_s* handle, MQTTPacket_co...
function mqtt_parse_secret_topic (line 537) | static int mqtt_parse_secret_topic(mqtt_client_s* handle, const char *pa...
function mqtt_send_secret_ack (line 606) | static void mqtt_send_secret_ack(mqtt_client_s* handle)
function mqtt_modify_payload (line 627) | static int mqtt_modify_payload(MessageData *md)
function mqtt_recv_secret_topic (line 646) | static void mqtt_recv_secret_topic(MessageData *md)
function mqtt_recv_cmd_topic (line 674) | static void mqtt_recv_cmd_topic(MessageData *md)
function mqtt_subscribe_topic (line 685) | static int mqtt_subscribe_topic(mqtt_client_s* handle)
function mqtt_disconnect (line 731) | static void mqtt_disconnect( MQTTClient *client, Network *n)
function mqtt_inc_fail_cnt (line 742) | static inline void mqtt_inc_fail_cnt(int32_t *conn_failed_cnt)
function mqtt_proc_connect_err (line 750) | static void mqtt_proc_connect_err( MQTTClient *client, Network *n, int32...
function mqtt_proc_connect_nack (line 756) | static void mqtt_proc_connect_nack(mqtt_client_s* handle)
function mqtt_security_info_s (line 774) | static mqtt_security_info_s *mqtt_get_security_info(void)
function mqtt_read_flash_info (line 780) | static void mqtt_read_flash_info(mqtt_client_s* handle)
function atiny_mqtt_init (line 816) | int atiny_mqtt_init(const mqtt_param_s *params, mqtt_client_s **phandle)
function atiny_mqtt_bind (line 849) | int atiny_mqtt_bind(const mqtt_device_info_s* device_info, mqtt_client_s...
function atiny_mqtt_data_send (line 993) | int atiny_mqtt_data_send(mqtt_client_s *phandle, const char *msg, uint3...
function atiny_mqtt_isconnected (line 1049) | int atiny_mqtt_isconnected(mqtt_client_s* phandle)
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/block1.c
function coap_block1_handler (line 86) | uint8_t coap_block1_handler(lwm2m_block1_data_t **pBlock1Data,
function free_block1_buffer (line 178) | void free_block1_buffer(lwm2m_block1_data_t *block1Data)
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/bootstrap.c
function prv_handleResponse (line 32) | static void prv_handleResponse(lwm2m_server_t *bootstrapServer,
function prv_handleBootstrapReply (line 47) | static void prv_handleBootstrapReply(lwm2m_transaction_t *transaction,
function prv_requestBootstrap (line 69) | static void prv_requestBootstrap(lwm2m_context_t *context,
function prv_resetBootstrapServer (line 129) | static void prv_resetBootstrapServer(lwm2m_server_t *serverP, void *user...
function prv_createBsConnection (line 141) | static void prv_createBsConnection(lwm2m_context_t *contextP, lwm2m_serv...
function bootstrap_step (line 168) | void bootstrap_step(lwm2m_context_t *contextP,
function bootstrap_handleFinish (line 279) | uint8_t bootstrap_handleFinish(lwm2m_context_t *context,
function bootstrap_isBsServerIpValid (line 303) | bool bootstrap_isBsServerIpValid(const lwm2m_context_t *contextP)
function bootstrap_start (line 327) | void bootstrap_start(lwm2m_context_t *contextP)
function lwm2m_status_t (line 345) | lwm2m_status_t bootstrap_getStatus(lwm2m_context_t *contextP)
function prv_checkServerStatus (line 384) | static uint8_t prv_checkServerStatus(lwm2m_server_t *serverP)
function prv_tagServer (line 419) | static void prv_tagServer(lwm2m_context_t *contextP,
function prv_tagAllServer (line 435) | static void prv_tagAllServer(lwm2m_context_t *contextP,
function bootstrap_handleCommand (line 457) | uint8_t bootstrap_handleCommand(lwm2m_context_t *contextP,
function bootstrap_handleDeleteAll (line 600) | uint8_t bootstrap_handleDeleteAll(lwm2m_context_t *contextP,
function bootstrap_handleRequest (line 664) | uint8_t bootstrap_handleRequest(lwm2m_context_t *contextP,
function lwm2m_set_bootstrap_callback (line 700) | void lwm2m_set_bootstrap_callback(lwm2m_context_t *contextP,
function prv_resultCallback (line 709) | static void prv_resultCallback(lwm2m_transaction_t *transacP,
function lwm2m_bootstrap_delete (line 745) | int lwm2m_bootstrap_delete(lwm2m_context_t *contextP,
function lwm2m_bootstrap_write (line 782) | int lwm2m_bootstrap_write(lwm2m_context_t *contextP,
function lwm2m_bootstrap_finish (line 825) | int lwm2m_bootstrap_finish(lwm2m_context_t *contextP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/data.c
function lwm2m_data_decode_opaque (line 60) | void lwm2m_data_decode_opaque(const lwm2m_data_t *dataP,
function prv_textSerialize (line 67) | static int prv_textSerialize(lwm2m_data_t *dataP,
function prv_setBuffer (line 165) | static int prv_setBuffer(lwm2m_data_t *dataP,
function lwm2m_data_t (line 180) | lwm2m_data_t *lwm2m_data_new(int size)
function lwm2m_data_free (line 197) | void lwm2m_data_free(int size,
function lwm2m_data_encode_string (line 230) | void lwm2m_data_encode_string(const char *string,
function lwm2m_data_encode_opaque (line 267) | void lwm2m_data_encode_opaque(uint8_t *buffer,
function lwm2m_data_encode_nstring (line 295) | void lwm2m_data_encode_nstring(const char *string,
function lwm2m_data_encode_int (line 308) | void lwm2m_data_encode_int(int64_t value,
function lwm2m_data_decode_int (line 316) | int lwm2m_data_decode_int(const lwm2m_data_t *dataP,
function lwm2m_data_encode_float (line 381) | void lwm2m_data_encode_float(double value,
function lwm2m_data_decode_float (line 389) | int lwm2m_data_decode_float(const lwm2m_data_t *dataP,
function lwm2m_data_encode_bool (line 444) | void lwm2m_data_encode_bool(bool value,
function lwm2m_data_decode_bool (line 452) | int lwm2m_data_decode_bool(const lwm2m_data_t *dataP,
function lwm2m_data_encode_objlink (line 513) | void lwm2m_data_encode_objlink(uint16_t objectId,
function lwm2m_data_include (line 523) | void lwm2m_data_include(lwm2m_data_t *subDataP,
function lwm2m_data_encode_instances (line 551) | void lwm2m_data_encode_instances(lwm2m_data_t *subDataP,
function lwm2m_data_parse (line 560) | int lwm2m_data_parse(lwm2m_uri_t *uriP,
function lwm2m_data_serialize (line 619) | int lwm2m_data_serialize(lwm2m_uri_t *uriP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/discover.c
function lwm2m_attributes_t (line 34) | static lwm2m_attributes_t *prv_findAttributes(lwm2m_context_t *contextP,
function prv_serializeAttributes (line 61) | static int prv_serializeAttributes(lwm2m_context_t *contextP,
function prv_serializeLinkData (line 155) | static int prv_serializeLinkData(lwm2m_context_t *contextP,
function discover_serialize (line 289) | int discover_serialize(lwm2m_context_t *contextP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/er-coap-13/er-coap-13.c
function coap_log_2 (line 107) | static
function coap_parse_int_option (line 122) | static
function coap_option_nibble (line 136) | static
function coap_set_option_header (line 154) | static
function coap_serialize_int_option (line 183) | static
function coap_serialize_array_option (line 206) | static
function coap_serialize_multi_option (line 250) | static
function coap_merge_multi_option (line 268) | static
function coap_add_multi_option (line 292) | void
function free_multi_option (line 334) | void
function coap_get_variable (line 381) | static
function coap_get_mid (line 422) | uint16_t
function coap_init_message (line 430) | void
function coap_free_header (line 443) | void
function coap_serialize_get_size (line 457) | size_t coap_serialize_get_size(void *packet)
function coap_serialize_message (line 566) | size_t
function coap_status_t (line 654) | coap_status_t
function coap_get_query_variable (line 892) | int
function coap_get_post_variable (line 905) | int
function coap_set_status_code (line 917) | int
function coap_get_header_content_type (line 933) | unsigned int
function coap_set_header_content_type (line 943) | int
function coap_get_header_accept (line 953) | int
function coap_set_header_accept (line 964) | int
function coap_get_header_max_age (line 979) | int
function coap_set_header_max_age (line 995) | int
function coap_get_header_etag (line 1005) | int
function coap_set_header_etag (line 1016) | int
function coap_get_header_if_match (line 1029) | int
function coap_set_header_if_match (line 1040) | int
function coap_get_header_if_none_match (line 1052) | int
function coap_set_header_if_none_match (line 1058) | int
function coap_get_header_token (line 1065) | int
function coap_set_header_token (line 1076) | int
function coap_get_header_proxy_uri (line 1088) | int
function coap_set_header_proxy_uri (line 1099) | int
function coap_get_header_uri_host (line 1111) | int
function coap_set_header_uri_host (line 1122) | int
function coap_get_header_uri_path (line 1134) | int
function coap_set_header_uri_path (line 1145) | int
function coap_set_header_uri_path_segment (line 1173) | int
function coap_get_header_uri_query (line 1194) | int
function coap_set_header_uri_query (line 1205) | int
function coap_get_header_location_path (line 1233) | int
function coap_set_header_location_path (line 1244) | int
function coap_get_header_location_query (line 1272) | int
function coap_set_header_location_query (line 1283) | int
function coap_get_header_observe (line 1297) | int
function coap_set_header_observe (line 1308) | int
function coap_get_header_block2 (line 1318) | int
function coap_set_header_block2 (line 1334) | int
function coap_get_header_block1 (line 1351) | int
function coap_set_header_block1 (line 1367) | int
function coap_get_header_size (line 1384) | int
function coap_set_header_size (line 1395) | int
function coap_get_payload (line 1407) | int
function coap_set_payload (line 1424) | int
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/er-coap-13/er-coap-13.h
type coap_message_type_t (line 109) | typedef enum
type coap_method_t (line 118) | typedef enum
type coap_status_t (line 127) | typedef enum
type coap_option_t (line 165) | typedef enum
type coap_content_type_t (line 189) | typedef enum
type multi_option_t (line 216) | typedef struct _multi_option_t
type coap_packet_t (line 225) | typedef struct
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/internals.h
type dm_data_t (line 256) | typedef struct
type uri_depth_t (line 264) | typedef enum
type bs_data_t (line 273) | typedef struct
function dm_isUriOpaqueHandle (line 382) | static inline int dm_isUriOpaqueHandle(const lwm2m_uri_t * uriP)
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/json.c
type _itemState (line 70) | typedef enum
type _type (line 81) | typedef enum
type _record_t (line 90) | typedef struct
function prv_isReserved (line 98) | static int prv_isReserved(char sign)
function prv_isWhiteSpace (line 114) | static int prv_isWhiteSpace(uint8_t sign)
function prv_skipSpace (line 127) | static size_t prv_skipSpace(uint8_t *buffer,
function prv_split (line 142) | static int prv_split(uint8_t *buffer,
function prv_countItems (line 241) | static int prv_countItems(uint8_t *buffer,
function prv_parseItem (line 289) | static int prv_parseItem(uint8_t *buffer,
function prv_convertValue (line 445) | static bool prv_convertValue(_record_t *recordP,
function lwm2m_data_t (line 508) | static lwm2m_data_t *prv_findDataItem(lwm2m_data_t *listP,
function uri_depth_t (line 527) | static uri_depth_t prv_decreaseLevel(uri_depth_t level)
function lwm2m_data_t (line 544) | static lwm2m_data_t *prv_extendData(lwm2m_data_t *parentP)
function prv_convertRecord (line 561) | static int prv_convertRecord(lwm2m_uri_t *uriP,
function prv_dataStrip (line 702) | static int prv_dataStrip(int size,
function json_parse (line 758) | int json_parse(lwm2m_uri_t *uriP,
function prv_serializeValue (line 1038) | static int prv_serializeValue(lwm2m_data_t *tlvP,
function prv_serializeData (line 1148) | int prv_serializeData(lwm2m_data_t *tlvP,
function prv_findAndCheckData (line 1220) | static int prv_findAndCheckData(lwm2m_uri_t *uriP,
function json_serialize (line 1362) | int json_serialize(lwm2m_uri_t *uriP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/liblwm2m.c
function lwm2m_context_t (line 94) | lwm2m_context_t *lwm2m_init(void *userData)
function lwm2m_register_event_handler (line 114) | void lwm2m_register_event_handler(lwm2m_event_handler_t callback)
function lwm2m_notify_even (line 119) | void lwm2m_notify_even(module_type_t type, int code, const char *arg, in...
function lwm2m_deregister (line 127) | void lwm2m_deregister(lwm2m_context_t *context)
function prv_deleteServer (line 139) | static void prv_deleteServer(lwm2m_server_t *serverP, void *userData)
function prv_deleteServerList (line 154) | static void prv_deleteServerList(lwm2m_context_t *context)
function prv_deleteBootstrapServer (line 166) | static void prv_deleteBootstrapServer(lwm2m_server_t *serverP, void *use...
function prv_deleteBootstrapServerList (line 178) | static void prv_deleteBootstrapServerList(lwm2m_context_t *context)
function prv_deleteObservedList (line 191) | static void prv_deleteObservedList(lwm2m_context_t *contextP)
function prv_deleteTransactionList (line 216) | void prv_deleteTransactionList(lwm2m_context_t *context)
function lwm2m_close (line 232) | void lwm2m_close(lwm2m_context_t *contextP)
function prv_isBoostrpEnable (line 273) | static bool prv_isBoostrpEnable(const lwm2m_context_t *contextP)
function lwm2m_isBsCtrlInServerInitiatedBs (line 288) | bool lwm2m_isBsCtrlInServerInitiatedBs(const lwm2m_context_t *contextP)
function lwm2m_initBsCtrlStat (line 293) | void lwm2m_initBsCtrlStat(lwm2m_context_t *contextP, lwm2m_bootstrap_typ...
function lwm2m_setBsCtrlStatWithoutCheck (line 300) | static void lwm2m_setBsCtrlStatWithoutCheck(lwm2m_context_t *contextP, l...
function lwm2m_setBsCtrlStat (line 326) | void lwm2m_setBsCtrlStat(lwm2m_context_t *contextP, lwm2m_client_state_t...
function lwm2m_delayBsRetry (line 385) | static void lwm2m_delayBsRetry(lwm2m_context_t *contextP)
function lwm2m_client_state_t (line 414) | lwm2m_client_state_t lwm2m_getBsCtrlStat(const lwm2m_context_t *contextP)
function prv_refreshServerList (line 421) | static int prv_refreshServerList(lwm2m_context_t *contextP)
function lwm2m_configure (line 465) | int lwm2m_configure(lwm2m_context_t *contextP,
function lwm2m_add_object (line 538) | int lwm2m_add_object(lwm2m_context_t *contextP,
function lwm2m_remove_object (line 558) | int lwm2m_remove_object(lwm2m_context_t *contextP,
function lwm2m_reset_register (line 577) | static void lwm2m_reset_register(lwm2m_context_t *context)
function lwm2m_reconnect (line 589) | int lwm2m_reconnect(lwm2m_context_t *context)
function lwm2m_initBootStrap (line 606) | int lwm2m_initBootStrap(lwm2m_context_t *contextP, lwm2m_bootstrap_type_...
function lwm2m_step (line 630) | int lwm2m_step(lwm2m_context_t *contextP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/liblwm2m.h
type lwm2m_list_t (line 276) | typedef struct _lwm2m_list_t
type lwm2m_uri_t (line 317) | typedef struct
type lwm2m_data_type_t (line 346) | typedef enum
type lwm2m_data_t (line 362) | typedef struct _lwm2m_data_t lwm2m_data_t;
type _lwm2m_data_t (line 364) | struct _lwm2m_data_t
type lwm2m_data_cfg_t (line 393) | typedef struct _lwm2m_data_cfg_t
type lwm2m_media_type_t (line 400) | typedef enum
type lwm2m_object_t (line 460) | typedef struct _lwm2m_object_t lwm2m_object_t;
type _lwm2m_object_t (line 470) | struct _lwm2m_object_t
type lwm2m_status_t (line 492) | typedef enum
type lwm2m_binding_t (line 511) | typedef enum
type module_type_t (line 522) | typedef enum
type lwm2m_block1_data_t (line 541) | typedef struct _lwm2m_block1_data_ lwm2m_block1_data_t;
type _lwm2m_block1_data_ (line 543) | struct _lwm2m_block1_data_
type lwm2m_server_t (line 550) | typedef struct _lwm2m_server_
type lwm2m_observation_t (line 582) | typedef struct _lwm2m_observation_
type lwm2m_attributes_t (line 606) | typedef struct
type lwm2m_client_object_t (line 625) | typedef struct _lwm2m_client_object_
type lwm2m_client_t (line 632) | typedef struct _lwm2m_client_
type lwm2m_transaction_t (line 655) | typedef struct _lwm2m_transaction_ lwm2m_transaction_t;
type _lwm2m_transaction_ (line 659) | struct _lwm2m_transaction_
type lwm2m_watcher_t (line 679) | typedef struct _lwm2m_watcher_
type lwm2m_observed_t (line 700) | typedef struct _lwm2m_observed_
type lwm2m_client_state_t (line 710) | typedef enum
type lwm2m_bs_sequence_state_t (line 720) | typedef enum
type lwm2m_bs_control_t (line 750) | typedef struct
type lwm2m_context_t (line 758) | typedef struct _lwm2m_context_t
type lwm2m_observe_info_t (line 823) | typedef struct
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/liblwm2m_api.h
type lwm2m_bootstrap_type_e (line 50) | typedef enum
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/list.c
function lwm2m_list_t (line 21) | lwm2m_list_t *lwm2m_list_add(lwm2m_list_t *head,
function lwm2m_list_t (line 47) | lwm2m_list_t *lwm2m_list_find(lwm2m_list_t *head,
function lwm2m_list_t (line 61) | lwm2m_list_t *lwm2m_list_remove(lwm2m_list_t *head,
function lwm2m_list_newId (line 98) | uint16_t lwm2m_list_newId(lwm2m_list_t *head)
function lwm2m_list_free (line 115) | void lwm2m_list_free(lwm2m_list_t *head)
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/lwm2m_utils.c
function utils_textToInt (line 56) | int utils_textToInt(uint8_t *buffer,
function utils_textToFloat (line 101) | int utils_textToFloat(uint8_t *buffer,
function utils_intToText (line 165) | size_t utils_intToText(int64_t data,
function utils_floatToText (line 214) | size_t utils_floatToText(double data,
function lwm2m_binding_t (line 279) | lwm2m_binding_t utils_stringToBinding(uint8_t *buffer,
function lwm2m_media_type_t (line 336) | lwm2m_media_type_t utils_convertMediaType(coap_content_type_t type)
function lwm2m_server_t (line 362) | lwm2m_server_t *utils_findServer(lwm2m_context_t *contextP,
function lwm2m_server_t (line 379) | lwm2m_server_t *utils_findBootstrapServer(lwm2m_context_t *contextP,
function utils_isAltPathValid (line 403) | int utils_isAltPathValid(const char *altPath)
function utils_stringCopy (line 434) | int utils_stringCopy(char *buffer,
function utils_copyValue (line 452) | void utils_copyValue(void *dst,
function prv_encodeBlock (line 481) | static void prv_encodeBlock(uint8_t input[3],
function utils_base64GetSize (line 490) | size_t utils_base64GetSize(size_t dataLen)
function utils_base64Encode (line 500) | size_t utils_base64Encode(uint8_t *dataP,
function lwm2m_data_type_t (line 545) | lwm2m_data_type_t utils_depthToDatatype(uri_depth_t depth)
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/management.c
function prv_readAttributes (line 91) | static int prv_readAttributes(multi_option_t *query,
function dm_handleRequest (line 197) | uint8_t dm_handleRequest(lwm2m_context_t *contextP,
function prv_resultCallback (line 444) | static void prv_resultCallback(lwm2m_transaction_t *transacP,
function prv_makeOperation (line 501) | static int prv_makeOperation(lwm2m_context_t *contextP,
function lwm2m_dm_read (line 554) | int lwm2m_dm_read(lwm2m_context_t *contextP,
function lwm2m_dm_write (line 585) | int lwm2m_dm_write(lwm2m_context_t *contextP,
function lwm2m_dm_execute (line 618) | int lwm2m_dm_execute(lwm2m_context_t *contextP,
function lwm2m_dm_create (line 640) | int lwm2m_dm_create(lwm2m_context_t *contextP,
function lwm2m_dm_delete (line 664) | int lwm2m_dm_delete(lwm2m_context_t *contextP,
function lwm2m_dm_write_attributes (line 684) | int lwm2m_dm_write_attributes(lwm2m_context_t *contextP,
function lwm2m_dm_discover (line 825) | int lwm2m_dm_discover(lwm2m_context_t *contextP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/objects.c
function object_checkReadable (line 97) | uint8_t object_checkReadable(lwm2m_context_t *contextP,
function object_checkNumeric (line 128) | uint8_t object_checkNumeric(lwm2m_context_t *contextP,
function prv_init_forbidden (line 167) | static uint8_t prv_init_forbidden(lwm2m_context_t *contextP,
function object_readData (line 208) | uint8_t object_readData(lwm2m_context_t *contextP,
function object_read (line 305) | uint8_t object_read(lwm2m_context_t *contextP,
function object_write (line 339) | uint8_t object_write(lwm2m_context_t *contextP,
function object_execute (line 379) | uint8_t object_execute(lwm2m_context_t *contextP,
function object_create (line 395) | uint8_t object_create(lwm2m_context_t *contextP,
function object_delete (line 461) | uint8_t object_delete(lwm2m_context_t *contextP,
function object_discover (line 508) | uint8_t object_discover(lwm2m_context_t *contextP,
function object_isInstanceNew (line 587) | bool object_isInstanceNew(lwm2m_context_t *contextP,
function prv_getObjectTemplate (line 606) | static int prv_getObjectTemplate(uint8_t *buffer,
function object_getRegisterPayloadBufferLength (line 630) | int object_getRegisterPayloadBufferLength(lwm2m_context_t *contextP)
function object_getRegisterPayload (line 700) | int object_getRegisterPayload(lwm2m_context_t *contextP,
function lwm2m_list_t (line 785) | static lwm2m_list_t *prv_findServerInstance(lwm2m_object_t *objectP,
function prv_getMandatoryInfo (line 823) | static int prv_getMandatoryInfo(lwm2m_object_t *objectP,
function object_getServers (line 863) | int object_getServers(lwm2m_context_t *contextP, bool checkOnly)
function object_createInstance (line 1002) | uint8_t object_createInstance(lwm2m_context_t *contextP,
function object_writeInstance (line 1020) | uint8_t object_writeInstance(lwm2m_context_t *contextP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/observe.c
function lwm2m_register_observe_ack_call_back (line 95) | void lwm2m_register_observe_ack_call_back(lwm2m_transaction_callback_t c...
function lwm2m_observed_t (line 101) | static lwm2m_observed_t *prv_findObserved(lwm2m_context_t *contextP,
function prv_unlinkObserved (line 119) | static void prv_unlinkObserved(lwm2m_context_t *contextP,
function lwm2m_watcher_t (line 143) | static lwm2m_watcher_t *prv_findWatcher(lwm2m_observed_t *observedP,
function lwm2m_watcher_t (line 158) | static lwm2m_watcher_t *prv_getWatcher(lwm2m_context_t *contextP,
function observe_handleRequest (line 206) | uint8_t observe_handleRequest(lwm2m_context_t *contextP,
function observe_cancel (line 283) | void observe_cancel(lwm2m_context_t *contextP,
function observe_clear (line 337) | void observe_clear(lwm2m_context_t *contextP,
function observe_setParameters (line 376) | uint8_t observe_setParameters(lwm2m_context_t *contextP,
function lwm2m_observed_t (line 477) | lwm2m_observed_t *observe_findByUri(lwm2m_context_t *contextP,
function lwm2m_resource_value_changed (line 507) | void lwm2m_resource_value_changed(lwm2m_context_t *contextP,
function observe_send_transaction (line 547) | int observe_send_transaction(lwm2m_context_t *contextP, lwm2m_data_cfg_t...
function observe_app_step (line 572) | void observe_app_step(lwm2m_context_t *contextP,
function observe_step (line 655) | void observe_step(lwm2m_context_t *contextP,
function lwm2m_get_observe_info (line 953) | uint8_t lwm2m_get_observe_info(lwm2m_context_t *contextP, lwm2m_observe_...
function lwm2m_send_notify (line 983) | uint8_t lwm2m_send_notify(lwm2m_context_t *contextP, lwm2m_observe_info_...
type cancellation_data_t (line 1042) | typedef struct
function lwm2m_observation_t (line 1049) | static lwm2m_observation_t *prv_findObservationByURI(lwm2m_client_t *cli...
function observe_remove (line 1071) | void observe_remove(lwm2m_observation_t *observationP)
function prv_obsRequestCallback (line 1078) | static void prv_obsRequestCallback(lwm2m_transaction_t *transacP,
function prv_obsCancelRequestCallback (line 1134) | static void prv_obsCancelRequestCallback(lwm2m_transaction_t *transacP,
function lwm2m_observe (line 1173) | int lwm2m_observe(lwm2m_context_t *contextP,
function lwm2m_observe_cancel (line 1250) | int lwm2m_observe_cancel(lwm2m_context_t *contextP,
function observe_handleNotify (line 1319) | bool observe_handleNotify(lwm2m_context_t *contextP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/packet.c
function handle_reset (line 130) | static void handle_reset(lwm2m_context_t *contextP,
function handle_request (line 140) | static uint8_t handle_request(lwm2m_context_t *contextP,
function lwm2m_handle_packet (line 234) | void lwm2m_handle_packet(lwm2m_context_t *contextP,
function message_send (line 449) | uint8_t message_send(lwm2m_context_t *contextP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/registration.c
function prv_getRegistrationQueryLength (line 101) | static int prv_getRegistrationQueryLength(lwm2m_context_t *contextP,
function prv_getRegistrationQuery (line 152) | static int prv_getRegistrationQuery(lwm2m_context_t *contextP,
function prv_handleRegistrationReply (line 224) | static void prv_handleRegistrationReply(lwm2m_transaction_t *transacP,
function prv_register (line 258) | static uint8_t prv_register(lwm2m_context_t *contextP,
function prv_handleRegistrationUpdateReply (line 342) | static void prv_handleRegistrationUpdateReply(lwm2m_transaction_t *trans...
function prv_updateRegistration (line 368) | static int prv_updateRegistration(lwm2m_context_t *contextP,
function lwm2m_update_registration (line 426) | int lwm2m_update_registration(lwm2m_context_t *contextP,
function registration_start (line 510) | uint8_t registration_start(lwm2m_context_t *contextP)
function lwm2m_status_t (line 539) | lwm2m_status_t registration_getStatus(lwm2m_context_t *contextP)
function prv_handleDeregistrationReply (line 582) | static void prv_handleDeregistrationReply(lwm2m_transaction_t *transacP,
function registration_deregister (line 597) | void registration_deregister(lwm2m_context_t *contextP,
function registration_reset (line 628) | void registration_reset(lwm2m_context_t *contextP,
function lwm2m_server_t (line 640) | lwm2m_server_t *registration_get_registered_server(lwm2m_context_t *cont...
function prv_freeClientObjectList (line 669) | static void prv_freeClientObjectList(lwm2m_client_object_t *objects)
function prv_getParameters (line 690) | static int prv_getParameters(multi_option_t *query,
function prv_splitLinkAttribute (line 774) | static uint16_t prv_splitLinkAttribute(uint8_t *data,
function prv_parseLinkAttributes (line 819) | static int prv_parseLinkAttributes(uint8_t *data,
function prv_getId (line 917) | static int prv_getId(uint8_t *data,
function lwm2m_client_object_t (line 977) | static lwm2m_client_object_t *prv_decodeRegisterPayload(uint8_t *payload,
function lwm2m_client_t (line 1061) | static lwm2m_client_t *prv_getClientByName(lwm2m_context_t *contextP,
function registration_freeClient (line 1075) | void registration_freeClient(lwm2m_client_t *clientP)
function prv_getLocationString (line 1093) | static int prv_getLocationString(uint16_t id,
function registration_handleRequest (line 1111) | uint8_t registration_handleRequest(lwm2m_context_t *contextP,
function lwm2m_set_monitoring_callback (line 1358) | void lwm2m_set_monitoring_callback(lwm2m_context_t *contextP,
function registration_step (line 1370) | void registration_step(lwm2m_context_t *contextP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/tlv.c
function prv_encodeFloat (line 43) | static size_t prv_encodeFloat(double data,
function prv_encodeInt (line 65) | static size_t prv_encodeInt(int64_t data,
function prv_getHeaderType (line 101) | static uint8_t prv_getHeaderType(lwm2m_data_type_t type)
function lwm2m_data_type_t (line 129) | static lwm2m_data_type_t prv_getDataType(uint8_t type)
function prv_getHeaderLength (line 151) | static int prv_getHeaderLength(uint16_t id,
function prv_createHeader (line 179) | static int prv_createHeader(uint8_t *header,
function lwm2m_decode_TLV (line 240) | int lwm2m_decode_TLV(const uint8_t *buffer,
function tlv_parse (line 304) | int tlv_parse(uint8_t *buffer,
function prv_getLength (line 365) | static int prv_getLength(int size,
function tlv_serialize (line 447) | int tlv_serialize(bool isResourceInstance,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/transaction.c
function prv_checkFinished (line 153) | static int prv_checkFinished(lwm2m_transaction_t *transacP,
function lwm2m_transaction_t (line 187) | lwm2m_transaction_t *transaction_new(void *sessionH,
function transaction_free (line 297) | void transaction_free(lwm2m_transaction_t *transacP)
function transaction_remove (line 310) | void transaction_remove(lwm2m_context_t *contextP,
function transaction_handleResponse (line 318) | bool transaction_handleResponse(lwm2m_context_t *contextP,
function transaction_send (line 405) | int transaction_send(lwm2m_context_t *contextP,
function transaction_step (line 502) | void transaction_step(lwm2m_context_t *contextP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/core/uri.c
function prv_parseNumber (line 57) | static int prv_parseNumber(uint8_t *uriString,
function uri_getNumber (line 87) | int uri_getNumber(uint8_t *uriString,
function lwm2m_uri_t (line 96) | lwm2m_uri_t *uri_decode(char *altPath,
function lwm2m_stringToUri (line 214) | int lwm2m_stringToUri(const char *buffer,
function uri_toString (line 280) | int uri_toString(lwm2m_uri_t *uriP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/examples/shared/commandline.c
function command_desc_t (line 66) | static command_desc_t *prv_find_command(command_desc_t *commandArray,
function prv_displayHelp (line 91) | static void prv_displayHelp(command_desc_t *commandArray,
function handle_command (line 122) | void handle_command(command_desc_t *commandArray,
function check_end_of_args (line 187) | int check_end_of_args(char *buffer)
function print_indent (line 198) | static void print_indent(FILE *stream,
function output_buffer (line 207) | void output_buffer(FILE *stream,
function output_buffer (line 253) | void output_buffer(FILE *stream,
function output_tlv (line 260) | void output_tlv(FILE *stream,
function output_data (line 335) | void output_data(FILE *stream,
function dump_tlv (line 390) | void dump_tlv(FILE *stream,
function print_status (line 486) | void print_status(FILE *stream,
function prv_b64Revert (line 501) | static uint8_t prv_b64Revert(uint8_t value)
function prv_decodeBlock (line 526) | static void prv_decodeBlock(uint8_t input[4],
function base64_decode (line 544) | size_t base64_decode(uint8_t *dataP,
FILE: Huawei_LiteOS/components/connectivity/lwm2m/examples/shared/commandline.h
type command_desc_t (line 58) | typedef struct
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/samples/FreeRTOS/MQTTEcho.c
function messageArrived (line 19) | void messageArrived(MessageData *data)
function prvMQTTEchoTask (line 25) | static void prvMQTTEchoTask(void *pvParameters)
function vStartMQTTTasks (line 82) | void vStartMQTTTasks(uint16_t usTaskStackSize, UBaseType_t uxTaskPriority)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/samples/linux/stdoutsub.c
function usage (line 57) | void usage()
function cfinish (line 73) | void cfinish(int sig)
type opts_struct (line 80) | struct opts_struct
function getopts (line 97) | void getopts(int argc, char **argv)
function messageArrived (line 181) | void messageArrived(MessageData *md)
function main (line 195) | int main(int argc, char **argv)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/FreeRTOS/MQTTFreeRTOS.c
function ThreadStart (line 21) | int ThreadStart(Thread *thread, void (*fn)(void *), void *arg)
function MutexInit (line 38) | void MutexInit(Mutex *mutex)
function MutexLock (line 43) | int MutexLock(Mutex *mutex)
function MutexUnlock (line 48) | int MutexUnlock(Mutex *mutex)
function TimerCountdownMS (line 54) | void TimerCountdownMS(Timer *timer, unsigned int timeout_ms)
function TimerCountdown (line 61) | void TimerCountdown(Timer *timer, unsigned int timeout)
function TimerLeftMS (line 67) | int TimerLeftMS(Timer *timer)
function TimerIsExpired (line 74) | char TimerIsExpired(Timer *timer)
function TimerInit (line 80) | void TimerInit(Timer *timer)
function FreeRTOS_read (line 87) | int FreeRTOS_read(Network *n, unsigned char *buffer, int len, int timeou...
function FreeRTOS_write (line 114) | int FreeRTOS_write(Network *n, unsigned char *buffer, int len, int timeo...
function FreeRTOS_disconnect (line 141) | void FreeRTOS_disconnect(Network *n)
function NetworkInit (line 147) | void NetworkInit(Network *n)
function NetworkConnect (line 156) | int NetworkConnect(Network *n, char *addr, int port)
function NetworkConnectTLS (line 183) | int NetworkConnectTLS(Network *n, char *addr, int port, SlSockSecureFile...
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/FreeRTOS/MQTTFreeRTOS.h
type Timer (line 26) | typedef struct Timer
type Network (line 32) | typedef struct Network Network;
type Network (line 34) | struct Network
type Mutex (line 48) | typedef struct Mutex
type Thread (line 57) | typedef struct Thread
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/MQTTClient.c
function NewMessageData (line 20) | static void NewMessageData(MessageData *md, MQTTString *aTopicName, MQTT...
function getNextPacketId (line 27) | static int getNextPacketId(MQTTClient *c)
function sendPacket (line 33) | static int sendPacket(MQTTClient* c, int length, Timer* timer)
function MQTTClientInit (line 56) | int MQTTClientInit(MQTTClient *c, Network *network, unsigned int command...
function MQTTClientDeInit (line 86) | void MQTTClientDeInit(MQTTClient *c)
function decodePacket (line 97) | static int decodePacket(MQTTClient* c, int* value, int timeout)
function readPacket (line 125) | static int readPacket(MQTTClient* c, Timer* timer)
function MQTTTopicMatched (line 165) | static int MQTTTopicMatched(const char *sub, MQTTString *topic_name, cha...
function deliverMessage (line 309) | int deliverMessage(MQTTClient* c, MQTTString* topicName, MQTTMessage* me...
function keepalive (line 343) | int keepalive(MQTTClient* c)
function MQTTCleanSession (line 370) | void MQTTCleanSession(MQTTClient* c)
function MQTTCloseSession (line 379) | void MQTTCloseSession(MQTTClient* c)
function cycle (line 388) | int cycle(MQTTClient* c, Timer* timer)
function MQTTYield (line 484) | int MQTTYield(MQTTClient* c, int timeout_ms)
function MQTTRun (line 515) | void MQTTRun(void* parm)
function MQTTStartTask (line 537) | int MQTTStartTask(MQTTClient* client)
function waitfor (line 544) | int waitfor(MQTTClient* c, int packet_type, Timer* timer)
function MQTTConnectWithResults (line 562) | int MQTTConnectWithResults(MQTTClient* c, MQTTPacket_connectData* option...
function MQTTConnect (line 617) | int MQTTConnect(MQTTClient* c, MQTTPacket_connectData* options)
function MQTTSetMessageHandler (line 624) | int MQTTSetMessageHandler(MQTTClient* c, const char* topicFilter, messag...
function MQTTSubscribeWithResults (line 667) | int MQTTSubscribeWithResults(MQTTClient *c, const char *topicFilter, enu...
function MQTTSubscribe (line 715) | int MQTTSubscribe(MQTTClient* c, const char* topicFilter, enum QoS qos,
function MQTTUnsubscribe (line 723) | int MQTTUnsubscribe(MQTTClient* c, const char* topicFilter)
function MQTTPublish (line 767) | int MQTTPublish(MQTTClient* c, const char* topicName, MQTTMessage* message)
function MQTTDisconnect (line 832) | int MQTTDisconnect(MQTTClient* c)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/MQTTClient.h
type QoS (line 60) | enum QoS { QOS0, QOS1, QOS2, SUBFAIL=0x80 }
type returnCode (line 63) | enum returnCode { BUFFER_OVERFLOW = -2, FAILURE = -1, MQTT_SUCCESS = 0 }
type MQTTMessage (line 82) | typedef struct MQTTMessage
type MessageData (line 92) | typedef struct MessageData
type MQTTConnackData (line 98) | typedef struct MQTTConnackData
type MQTTSubackData (line 104) | typedef struct MQTTSubackData
type MQTTClient (line 111) | typedef struct MQTTClient
type QoS (line 192) | enum QoS
type QoS (line 201) | enum QoS
function DLLExport (line 227) | static inline DLLExport int MQTTIsConnected(MQTTClient* client)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/cc3200/MQTTCC3200.c
function SysTickIntHandler (line 21) | void SysTickIntHandler(void)
function expired (line 26) | char expired(Timer *timer)
function countdown_ms (line 33) | void countdown_ms(Timer *timer, unsigned int timeout)
function countdown (line 39) | void countdown(Timer *timer, unsigned int timeout)
function left_ms (line 45) | int left_ms(Timer *timer)
function InitTimer (line 52) | void InitTimer(Timer *timer)
function cc3200_read (line 58) | int cc3200_read(Network *n, unsigned char *buffer, int len, int timeout_ms)
function cc3200_write (line 83) | int cc3200_write(Network *n, unsigned char *buffer, int len, int timeout...
function cc3200_disconnect (line 105) | void cc3200_disconnect(Network *n)
function NewNetwork (line 111) | void NewNetwork(Network *n)
function TLSConnectNetwork (line 119) | int TLSConnectNetwork(Network *n, char *addr, int port, SlSockSecureFile...
function ConnectNetwork (line 186) | int ConnectNetwork(Network *n, char *addr, int port)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/cc3200/MQTTCC3200.h
type Timer (line 26) | typedef struct Timer Timer;
type Timer (line 28) | struct Timer {
type Network (line 33) | typedef struct Network Network;
type Network (line 35) | struct Network
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/linux/MQTTLinux.c
function TimerInit (line 20) | void TimerInit(Timer *timer)
function TimerIsExpired (line 28) | char TimerIsExpired(Timer *timer)
function TimerCountdownMS (line 37) | void TimerCountdownMS(Timer *timer, unsigned int timeout)
function TimerCountdown (line 46) | void TimerCountdown(Timer *timer, unsigned int timeout)
function TimerLeftMS (line 55) | int TimerLeftMS(Timer *timer)
function linux_read (line 65) | int linux_read(Network *n, unsigned char *buffer, int len, int timeout_ms)
function linux_write (line 98) | int linux_write(Network *n, unsigned char *buffer, int len, int timeout_ms)
function NetworkInit (line 111) | void NetworkInit(Network *n)
function NetworkConnect (line 119) | int NetworkConnect(Network *n, char *addr, int port)
function NetworkDisconnect (line 166) | void NetworkDisconnect(Network *n)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/linux/MQTTLinux.h
type Timer (line 49) | typedef struct Timer
type Network (line 60) | typedef struct Network
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/liteOS/MQTTliteos.c
function TimerInit (line 63) | void TimerInit(Timer *timer)
function TimerIsExpired (line 68) | char TimerIsExpired(Timer *timer)
function TimerCountdownMS (line 74) | void TimerCountdownMS(Timer *timer, unsigned int timeout)
function TimerCountdown (line 80) | void TimerCountdown(Timer *timer, unsigned int timeout)
function TimerLeftMS (line 86) | int TimerLeftMS(Timer *timer)
function MutexInit (line 92) | int MutexInit(Mutex* mutex)
function MutexLock (line 101) | int MutexLock(Mutex* mutex)
function MutexUnlock (line 111) | int MutexUnlock(Mutex* mutex)
function MutexDestory (line 121) | void MutexDestory(Mutex* mutex)
function ThreadStart (line 130) | int ThreadStart(Thread *thread, void (*fn)(void *), void *arg)
function los_mqtt_read (line 138) | static int los_mqtt_read(void *ctx, unsigned char *buffer, int len, int ...
function los_mqtt_tls_read (line 149) | static int los_mqtt_tls_read(mbedtls_ssl_context *ssl, unsigned char *bu...
function los_read (line 171) | static int los_read(Network *n, unsigned char *buffer, int len, int time...
function los_write (line 202) | static int los_write(Network *n, unsigned char *buffer, int len, int tim...
function NetworkInit (line 232) | void NetworkInit(Network *n, mqtt_security_info_s *(*get_security_info)(...
function los_mqtt_connect (line 248) | static int los_mqtt_connect(Network *n, char *addr, int port)
function los_mqtt_tls_connect (line 265) | static int los_mqtt_tls_connect(Network *n, char *addr, int port)
function NetworkConnect (line 328) | int NetworkConnect(Network *n, char *addr, int port)
function los_mqtt_disconnect (line 357) | static void los_mqtt_disconnect(void *ctx)
function NetworkDisconnect (line 369) | void NetworkDisconnect(Network *n)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/liteOS/MQTTliteos.h
type Timer (line 51) | typedef struct Timer
type Mutex (line 62) | typedef struct atiny_task_mutex_tag_s Mutex;
type Thread (line 68) | typedef struct
type mqtt_context_t (line 74) | typedef struct mqtt_context
type Network (line 79) | typedef struct Network
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/test/test1.c
function usage (line 40) | void usage(void)
type Options (line 46) | struct Options
function getopts (line 68) | void getopts(int argc, char **argv)
function MyLog (line 153) | void MyLog(int LOGA_level, char *format, ...)
function START_TIME_TYPE (line 183) | START_TIME_TYPE start_clock(void)
function START_TIME_TYPE (line 190) | START_TIME_TYPE start_clock(void)
function START_TIME_TYPE (line 200) | START_TIME_TYPE start_clock(void)
function elapsed (line 210) | long elapsed(START_TIME_TYPE start_time)
function elapsed (line 216) | long elapsed(struct timespec start)
function elapsed (line 225) | long elapsed(START_TIME_TYPE start_time)
function write_test_result (line 247) | void write_test_result(void)
function myassert (line 261) | void myassert(char *filename, int lineno, char *description, int value, ...
function messageArrived (line 286) | void messageArrived(MessageData *md)
function test1_sendAndReceive (line 305) | void test1_sendAndReceive(MQTTClient *c, int qos, char *test_topic)
function test1 (line 349) | int test1(struct Options options)
function test2 (line 427) | int test2(struct Options options)
function messageArrived2 (line 535) | void messageArrived2(MessageData *md)
function check_subs_exist (line 549) | int check_subs_exist(MQTTClient *c, const char *test_topic, int which)
function test3 (line 584) | int test3(struct Options options)
function test6_connectionLost (line 777) | void test6_connectionLost(void *context, char *cause)
function test6_deliveryComplete (line 784) | void test6_deliveryComplete(void *context, MQTTClient_deliveryToken token)
function test6_messageArrived (line 792) | int test6_messageArrived(void *context, char *topicName, int topicLen, M...
function test6 (line 805) | int test6(struct Options options)
function test6a (line 912) | int test6a(struct Options options)
function main (line 1020) | int main(int argc, char **argv)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/baremetalserial/ping_nb.c
function start_ping_timer (line 29) | void start_ping_timer(void)
function time_to_ping (line 35) | int time_to_ping(void)
type states (line 69) | enum states { IDLE, SENDPING, GETPONG }
function main (line 71) | int main(int argc, char *argv[])
function cfinish (line 193) | void cfinish(int sig)
function stop_init (line 199) | void stop_init(void)
function sampleserial_init (line 218) | void sampleserial_init(void)
function sampleserial_close (line 241) | void sampleserial_close(void)
function samplesend (line 246) | int samplesend(unsigned char *address, unsigned int bytes)
function samplerecv (line 264) | int samplerecv(unsigned char *address, unsigned int maxbytes)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/baremetalserial/pub0sub1_nb.c
type states (line 49) | enum states { READING, PUBLISHING }
function main (line 51) | int main(int argc, char *argv[])
function cfinish (line 214) | void cfinish(int sig)
function stop_init (line 220) | void stop_init(void)
function sampleserial_init (line 239) | void sampleserial_init(void)
function sampleserial_close (line 262) | void sampleserial_close(void)
function samplesend (line 267) | int samplesend(unsigned char *address, unsigned int bytes)
function samplerecv (line 285) | int samplerecv(unsigned char *address, unsigned int maxbytes)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/baremetalserial/transport.c
function transport_sendPacketBuffernb_start (line 43) | void transport_sendPacketBuffernb_start(int sock, unsigned char *buf, in...
function transport_sendPacketBuffernb (line 49) | int transport_sendPacketBuffernb(int sock)
function transport_sendPacketBuffer (line 72) | int transport_sendPacketBuffer(int sock, unsigned char *buf, int buflen)
function transport_getdata (line 89) | int transport_getdata(unsigned char *buf, int count)
function transport_getdatanb (line 95) | int transport_getdatanb(void *sck, unsigned char *buf, int count)
function transport_open (line 113) | int transport_open(transport_iofunctions_t *thisio)
function transport_close (line 123) | int transport_close(int sock)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/baremetalserial/transport.h
type transport_iofunctions_t (line 18) | typedef struct {
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/null.c
function main (line 1) | int main(int argc, char **argv)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/ping.c
function start_ping_timer (line 30) | void start_ping_timer(void)
function time_to_ping (line 36) | int time_to_ping(void)
function cfinish (line 53) | void cfinish(int sig)
function stop_init (line 59) | void stop_init(void)
function main (line 66) | int main(int argc, char *argv[])
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/ping_nb.c
function start_ping_timer (line 30) | void start_ping_timer(void)
function time_to_ping (line 36) | int time_to_ping(void)
function cfinish (line 53) | void cfinish(int sig)
function stop_init (line 59) | void stop_init(void)
type states (line 66) | enum states { IDLE, GETPONG }
function main (line 68) | int main(int argc, char *argv[])
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/pub0sub1.c
function cfinish (line 32) | void cfinish(int sig)
function stop_init (line 38) | void stop_init(void)
function main (line 45) | int main(int argc, char *argv[])
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/pub0sub1_nb.c
function cfinish (line 32) | void cfinish(int sig)
function stop_init (line 38) | void stop_init(void)
function main (line 45) | int main(int argc, char *argv[])
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/qos0pub.c
function main (line 26) | int main(int argc, char *argv[])
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/transport.c
function transport_sendPacketBuffer (line 74) | int transport_sendPacketBuffer(int sock, unsigned char *buf, int buflen)
function transport_getdata (line 82) | int transport_getdata(unsigned char *buf, int count)
function transport_getdatanb (line 89) | int transport_getdatanb(void *sck, unsigned char *buf, int count)
function transport_open (line 110) | int transport_open(char *addr, int port)
function transport_close (line 197) | int transport_close(int sock)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTConnect.h
type MQTTConnectFlags (line 30) | typedef union
type MQTTPacket_willOptions (line 64) | typedef struct
type MQTTPacket_connectData (line 89) | typedef struct
type MQTTConnackFlags (line 107) | typedef union
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTConnectClient.c
function MQTTSerialize_connectLength (line 27) | int MQTTSerialize_connectLength(MQTTPacket_connectData *options)
function MQTTSerialize_connect (line 58) | int MQTTSerialize_connect(unsigned char *buf, int buflen, MQTTPacket_con...
function MQTTDeserialize_connack (line 133) | int MQTTDeserialize_connack(unsigned char *sessionPresent, unsigned char...
function MQTTSerialize_zero (line 170) | int MQTTSerialize_zero(unsigned char *buf, int buflen, unsigned char pac...
function MQTTSerialize_disconnect (line 200) | int MQTTSerialize_disconnect(unsigned char *buf, int buflen)
function MQTTSerialize_pingreq (line 212) | int MQTTSerialize_pingreq(unsigned char *buf, int buflen)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTConnectServer.c
function MQTTPacket_checkVersion (line 30) | int MQTTPacket_checkVersion(MQTTString *protocol, int version)
function MQTTDeserialize_connect (line 51) | int MQTTDeserialize_connect(MQTTPacket_connectData *data, unsigned char ...
function MQTTSerialize_connack (line 119) | int MQTTSerialize_connack(unsigned char *buf, int buflen, unsigned char ...
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTDeserializePublish.c
function MQTTDeserialize_publish (line 36) | int MQTTDeserialize_publish(unsigned char *dup, int *qos, unsigned char ...
function MQTTDeserialize_ack (line 82) | int MQTTDeserialize_ack(unsigned char *packettype, unsigned char *dup, u...
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTFormat.c
function MQTTStringFormat_connect (line 37) | int MQTTStringFormat_connect(char *strbuf, int strbuflen, MQTTPacket_con...
function MQTTStringFormat_connack (line 61) | int MQTTStringFormat_connack(char *strbuf, int strbuflen, unsigned char ...
function MQTTStringFormat_publish (line 68) | int MQTTStringFormat_publish(char *strbuf, int strbuflen, unsigned char ...
function MQTTStringFormat_ack (line 80) | int MQTTStringFormat_ack(char *strbuf, int strbuflen, unsigned char pack...
function MQTTStringFormat_subscribe (line 89) | int MQTTStringFormat_subscribe(char *strbuf, int strbuflen, unsigned cha...
function MQTTStringFormat_suback (line 100) | int MQTTStringFormat_suback(char *strbuf, int strbuflen, unsigned short ...
function MQTTStringFormat_unsubscribe (line 107) | int MQTTStringFormat_unsubscribe(char *strbuf, int strbuflen, unsigned c...
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTPacket.c
function MQTTPacket_encode (line 29) | int MQTTPacket_encode(unsigned char *buf, int length)
function MQTTPacket_decode (line 55) | int MQTTPacket_decode(int (*getcharfn)(unsigned char *, int), int *value)
function MQTTPacket_len (line 86) | int MQTTPacket_len(int rem_len)
function bufchar (line 105) | int bufchar(unsigned char *c, int count)
function MQTTPacket_decodeBuf (line 115) | int MQTTPacket_decodeBuf(unsigned char *buf, int *value)
function readInt (line 127) | int readInt(unsigned char **pptr)
function readChar (line 141) | char readChar(unsigned char **pptr)
function writeChar (line 154) | void writeChar(unsigned char **pptr, char c)
function writeInt (line 166) | void writeInt(unsigned char **pptr, int anInt)
function writeCString (line 180) | void writeCString(unsigned char **pptr, const char *string)
function getLenStringLen (line 189) | int getLenStringLen(char *ptr)
function writeMQTTString (line 196) | void writeMQTTString(unsigned char **pptr, MQTTString mqttstring)
function readMQTTLenString (line 217) | int readMQTTLenString(MQTTString *mqttstring, unsigned char **pptr, unsi...
function MQTTstrlen (line 244) | int MQTTstrlen(MQTTString mqttstring)
function MQTTPacket_equals (line 262) | int MQTTPacket_equals(MQTTString *a, char *bptr)
function MQTTPacket_read (line 292) | int MQTTPacket_read(unsigned char *buf, int buflen, int (*getfn)(unsigne...
function MQTTPacket_decodenb (line 326) | static int MQTTPacket_decodenb(MQTTTransport *trp)
function MQTTPacket_readnb (line 368) | int MQTTPacket_readnb(unsigned char *buf, int buflen, MQTTTransport *trp)
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTPacket.h
type errors (line 36) | enum errors
type msgTypes (line 43) | enum msgTypes
type MQTTHeader (line 53) | typedef union
type MQTTLenString (line 75) | typedef struct
type MQTTString (line 81) | typedef struct
type MQTTTransport (line 117) | typedef struct {
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTSerializePublish.c
function MQTTSerialize_publishLength (line 31) | int MQTTSerialize_publishLength(int qos, MQTTString topicName, int paylo...
function MQTTSerialize_publish (line 55) | int MQTTSerialize_publish(unsigned char *buf, int buflen, unsigned char ...
function MQTTSerialize_ack (line 104) | int MQTTSerialize_ack(unsigned char *buf, int buflen, unsigned char pack...
function MQTTSerialize_puback (line 137) | int MQTTSerialize_puback(unsigned char *buf, int buflen, unsigned short ...
function MQTTSerialize_pubrel (line 151) | int MQTTSerialize_pubrel(unsigned char *buf, int buflen, unsigned char d...
function MQTTSerialize_pubcomp (line 164) | int MQTTSerialize_pubcomp(unsigned char *buf, int buflen, unsigned short...
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTSubscribeClient.c
function MQTTSerialize_subscribeLength (line 28) | int MQTTSerialize_subscribeLength(int count, MQTTString topicFilters[])
function MQTTSerialize_subscribe (line 50) | int MQTTSerialize_subscribe(unsigned char *buf, int buflen, unsigned cha...
function MQTTDeserialize_suback (line 100) | int MQTTDeserialize_suback(unsigned short *packetid, int maxcount, int *...
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTSubscribeServer.c
function MQTTDeserialize_subscribe (line 35) | int MQTTDeserialize_subscribe(unsigned char *dup, unsigned short *packet...
function MQTTSerialize_suback (line 82) | int MQTTSerialize_suback(unsigned char *buf, int buflen, unsigned short ...
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTUnsubscribeClient.c
function MQTTSerialize_unsubscribeLength (line 28) | int MQTTSerialize_unsubscribeLength(int count, MQTTString topicFilters[])
function MQTTSerialize_unsubscribe (line 49) | int MQTTSerialize_unsubscribe(unsigned char *buf, int buflen, unsigned c...
function MQTTDeserialize_unsuback (line 92) | int MQTTDeserialize_unsuback(unsigned short *packetid, unsigned char *bu...
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTUnsubscribeServer.c
function MQTTDeserialize_unsubscribe (line 34) | int MQTTDeserialize_unsubscribe(unsigned char *dup, unsigned short *pack...
function MQTTSerialize_unsuback (line 76) | int MQTTSerialize_unsuback(unsigned char *buf, int buflen, unsigned shor...
FILE: Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/test/test1.c
type Options (line 42) | struct Options
function usage (line 58) | void usage()
function getopts (line 63) | void getopts(int argc, char **argv)
function MyLog (line 119) | void MyLog(int LOGA_level, char *format, ...)
function START_TIME_TYPE (line 149) | START_TIME_TYPE start_clock(void)
function START_TIME_TYPE (line 156) | START_TIME_TYPE start_clock(void)
function START_TIME_TYPE (line 166) | START_TIME_TYPE start_clock(void)
function elapsed (line 176) | long elapsed(START_TIME_TYPE start_time)
function elapsed (line 182) | long elapsed(struct timespec start)
function elapsed (line 191) | long elapsed(START_TIME_TYPE start_time)
function write_test_result (line 213) | void write_test_result()
function myassert (line 227) | void myassert(char *filename, int lineno, char *description, int value, ...
function checkMQTTStrings (line 250) | int checkMQTTStrings(MQTTString a, MQTTString b)
function checkConnectPackets (line 268) | int checkConnectPackets(MQTTPacket_connectData *before, MQTTPacket_conne...
function test1 (line 322) | int test1(struct Options options)
function test2 (line 366) | int test2(struct Options options)
function test3 (line 426) | int test3(struct Options options)
function test4 (line 481) | int test4(struct Options options)
function test5 (line 524) | int test5(struct Options options)
function test6 (line 573) | int test6(struct Options options)
function main (line 609) | int main(int argc, char **argv)
FILE: Huawei_LiteOS/components/connectivity/nb_iot/los_nb_api.c
function los_nb_init (line 41) | int los_nb_init(const int8_t* host, const int8_t* port, sec_param_s* psk)
function los_nb_report (line 104) | int los_nb_report(const char* buf, int len)
function los_nb_notify (line 111) | int los_nb_notify(char* featurestr,int cmdlen, oob_callback callback, oo...
function los_nb_deinit (line 118) | int los_nb_deinit(void)
FILE: Huawei_LiteOS/components/fs/devfs/los_devfs.c
function UINT32 (line 42) | UINT32 los_devfs_init (void)
function UINT32 (line 59) | UINT32 los_devfs_create (const char *name, uint32_t flags,
function UINT32 (line 74) | UINT32 los_devfs_link (const char *path_in_mp, uint32_t flags,
FILE: Huawei_LiteOS/components/fs/fatfs/ff13b/source/diskio.c
type disk_mnt (line 13) | struct disk_mnt
function DSTATUS (line 20) | DSTATUS disk_status (
function DSTATUS (line 36) | DSTATUS disk_initialize (
function DRESULT (line 59) | DRESULT disk_read (
function DRESULT (line 81) | DRESULT disk_write (
function DRESULT (line 102) | DRESULT disk_ioctl (
FILE: Huawei_LiteOS/components/fs/fatfs/ff13b/source/diskio.h
type BYTE (line 16) | typedef BYTE DSTATUS;
type DRESULT (line 19) | typedef enum {
FILE: Huawei_LiteOS/components/fs/fatfs/ff13b/source/ff.c
type FILESEM (line 251) | typedef struct {
function WORD (line 570) | static WORD ld_word (const BYTE* ptr) /* Load a 2-byte little-endian wo...
function DWORD (line 579) | static DWORD ld_dword (const BYTE* ptr) /* Load a 4-byte little-endian w...
function QWORD (line 591) | static QWORD ld_qword (const BYTE* ptr) /* Load an 8-byte little-endian ...
function st_word (line 608) | static void st_word (BYTE* ptr, WORD val) /* Store a 2-byte word in litt...
function st_dword (line 614) | static void st_dword (BYTE* ptr, DWORD val) /* Store a 4-byte word in li...
function st_qword (line 623) | static void st_qword (BYTE* ptr, QWORD val) /* Store an 8-byte word in l...
function mem_cpy (line 644) | static void mem_cpy (void* dst, const void* src, UINT cnt)
function mem_set (line 658) | static void mem_set (void* dst, int val, UINT cnt)
function mem_cmp (line 669) | static int mem_cmp (const void* dst, const void* src, UINT cnt) /* ZR:sa...
function chk_chr (line 683) | static int chk_chr (const char* str, int chr) /* NZ:contained, ZR:not co...
function dbc_1st (line 691) | static int dbc_1st (BYTE c)
function dbc_2nd (line 711) | static int dbc_2nd (BYTE c)
function DWORD (line 735) | static DWORD tchar2uni ( /* Returns character in UTF-16 encoding (>=0x10...
function BYTE (line 808) | static BYTE put_utf ( /* Returns number of encoding units written (0:buf...
function lock_fs (line 897) | static int lock_fs ( /* 1:Ok, 0:timeout */
function unlock_fs (line 905) | static void unlock_fs (
function FRESULT (line 924) | static FRESULT chk_lock ( /* Check if the file can be accessed */
function enq_lock (line 951) | static int enq_lock (void) /* Check if an entry is available for a new o...
function UINT (line 960) | static UINT inc_lock ( /* Increment object open counter and returns its ...
function FRESULT (line 991) | static FRESULT dec_lock ( /* Decrement object open counter */
function clear_lock (line 1013) | static void clear_lock ( /* Clear lock entries of the volume */
function FRESULT (line 1032) | static FRESULT sync_window ( /* Returns FR_OK or FR_DISK_ERR */
function FRESULT (line 1054) | static FRESULT move_window ( /* Returns FR_OK or FR_DISK_ERR */
function FRESULT (line 1085) | static FRESULT sync_fs ( /* Returns FR_OK or FR_DISK_ERR */
function DWORD (line 1122) | static DWORD clst2sect ( /* !=0:Sector number, 0:Failed (invalid cluster...
function DWORD (line 1139) | static DWORD get_fat ( /* 0xFFFFFFFF:Disk error, 1:Internal error, 2..0...
function FRESULT (line 1216) | static FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */
function DWORD (line 1281) | static DWORD find_bitmap ( /* 0:Not found, 2..:Cluster block found, 0xFF...
function FRESULT (line 1321) | static FRESULT change_bitmap (
function FRESULT (line 1357) | static FRESULT fill_first_frag (
function FRESULT (line 1380) | static FRESULT fill_last_frag (
function FRESULT (line 1406) | static FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */
function DWORD (line 1501) | static DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFF...
function DWORD (line 1604) | static DWORD clmt_clust ( /* <2:Error, >=2:Cluster number */
function FRESULT (line 1634) | static FRESULT dir_clear ( /* Returns FR_OK or FR_DISK_ERR */
function FRESULT (line 1673) | static FRESULT dir_sdi ( /* FR_OK(0):succeeded, !=0:error */
function FRESULT (line 1721) | static FRESULT dir_next ( /* FR_OK(0):succeeded, FR_NO_FILE:End of table...
function DWORD (line 1823) | static DWORD ld_clust ( /* Returns the top cluster value of the SFN entr...
function st_clust (line 1840) | static void st_clust (
function cmp_lfn (line 1860) | static int cmp_lfn ( /* 1:matched, 0:not matched */
function pick_lfn (line 1896) | static int pick_lfn ( /* 1:succeeded, 0:buffer overflow or invalid LFN e...
function put_lfn (line 1934) | static void put_lfn (
function gen_numname (line 1971) | static void gen_numname (
function BYTE (line 2029) | static BYTE sum_sfn (
function WORD (line 2051) | static WORD xdir_sum ( /* Get checksum of the directoly entry block */
function WORD (line 2072) | static WORD xname_sum ( /* Get check sum (to be used as hash) of the fil...
function DWORD (line 2090) | static DWORD xsum32 ( /* Returns 32-bit checksum */
function get_xfileinfo (line 2106) | static void get_xfileinfo (
function FRESULT (line 2147) | static FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */
function init_alloc_info (line 2198) | static void init_alloc_info (
function FRESULT (line 2216) | static FRESULT load_obj_xdir (
function FRESULT (line 2245) | static FRESULT store_xdir (
function create_xdir (line 2277) | static void create_xdir (
function FRESULT (line 2323) | static FRESULT dir_read (
function FRESULT (line 2401) | static FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */
function FRESULT (line 2482) | static FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entr...
function FRESULT (line 2588) | static FRESULT dir_remove ( /* FR_OK:Succeeded, FR_DISK_ERR:A disk error */
function get_fileinfo (line 2634) | static void get_fileinfo (
function DWORD (line 2738) | static DWORD get_achar ( /* Get a character and advances ptr */
function pattern_matching (line 2769) | static int pattern_matching ( /* 0:not matched, 1:matched */
function FRESULT (line 2816) | static FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: coul...
function FRESULT (line 3013) | static FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */
function get_ldnumber (line 3100) | static int get_ldnumber ( /* Returns logical drive number (-1:invalid dr...
function BYTE (line 3174) | static BYTE check_fs ( /* 0:FAT, 1:exFAT, 2:Valid BS but not FAT, 3:Not ...
function FRESULT (line 3201) | static FRESULT find_volume ( /* FR_OK(0): successful, !=0: an error occu...
function FRESULT (line 3426) | static FRESULT validate ( /* Returns FR_OK or FR_INVALID_OBJECT */
function FRESULT (line 3470) | FRESULT f_mount (
function FRESULT (line 3518) | FRESULT f_open (
function FRESULT (line 3708) | FRESULT f_read (
function FRESULT (line 3808) | FRESULT f_write (
function FRESULT (line 3929) | FRESULT f_sync (
function FRESULT (line 4010) | FRESULT f_close (
function FRESULT (line 4046) | FRESULT f_chdrive (
function FRESULT (line 4063) | FRESULT f_chdir (
function FRESULT (line 4125) | FRESULT f_getcwd (
function FRESULT (line 4224) | FRESULT f_lseek (
function FRESULT (line 4385) | FRESULT f_opendir (
function FRESULT (line 4451) | FRESULT f_closedir (
function FRESULT (line 4481) | FRESULT f_readdir (
function FRESULT (line 4517) | FRESULT f_findnext (
function FRESULT (line 4542) | FRESULT f_findfirst (
function FRESULT (line 4569) | FRESULT f_stat (
function FRESULT (line 4604) | FRESULT f_getfree (
function FRESULT (line 4693) | FRESULT f_truncate (
function FRESULT (line 4743) | FRESULT f_unlink (
function FRESULT (line 4837) | FRESULT f_mkdir (
function FRESULT (line 4925) | FRESULT f_rename (
function FRESULT (line 5035) | FRESULT f_chmod (
function FRESULT (line 5082) | FRESULT f_utime (
function FRESULT (line 5129) | FRESULT f_getlabel (
function FRESULT (line 5224) | FRESULT f_setlabel (
function FRESULT (line 5344) | FRESULT f_expand (
function FRESULT (line 5434) | FRESULT f_forward (
function FRESULT (line 5505) | FRESULT f_mkfs (
function FRESULT (line 5970) | FRESULT f_fdisk (
function TCHAR (line 6053) | TCHAR* f_gets (
type putbuff (line 6181) | typedef struct { /* Putchar output buffer and work area */
function putc_bfd (line 6194) | static
function putc_flush (line 6326) | static
function putc_init (line 6340) | static
function f_putc (line 6352) | int f_putc (
function f_puts (line 6372) | int f_puts (
function f_printf (line 6392) | int f_printf (
function FRESULT (line 6510) | FRESULT f_setcp (
FILE: Huawei_LiteOS/components/fs/fatfs/ff13b/source/ff.h
type PARTITION (line 41) | typedef struct {
type WCHAR (line 62) | typedef WCHAR TCHAR;
type TCHAR (line 66) | typedef char TCHAR;
type DWORD (line 70) | typedef DWORD TCHAR;
type TCHAR (line 76) | typedef char TCHAR;
type QWORD (line 88) | typedef QWORD FSIZE_t;
type DWORD (line 90) | typedef DWORD FSIZE_t;
type FATFS (line 97) | typedef struct {
type FFOBJID (line 144) | typedef struct {
type FIL (line 167) | typedef struct {
type DIR (line 190) | typedef struct {
type FILINFO (line 209) | typedef struct {
type FRESULT (line 226) | typedef enum {
FILE: Huawei_LiteOS/components/fs/fatfs/ff13b/source/ffsystem.c
function ff_memfree (line 29) | void ff_memfree (
function ff_cre_syncobj (line 53) | int ff_cre_syncobj ( /* 1:Function succeeded, 0:Could not create the syn...
function ff_del_syncobj (line 90) | int ff_del_syncobj ( /* 1:Function succeeded, 0:Could not delete due to ...
function ff_req_grant (line 121) | int ff_req_grant ( /* 1:Got a grant to access the volume, 0:Could not ge...
function ff_rel_grant (line 150) | void ff_rel_grant (
FILE: Huawei_LiteOS/components/fs/fatfs/ff13b/source/ffunicode.c
function WCHAR (line 15226) | WCHAR ff_uni2oem ( /* Returns OEM code character, zero on error */
function WCHAR (line 15248) | WCHAR ff_oem2uni ( /* Returns Unicode character, zero on error */
function WCHAR (line 15279) | WCHAR ff_uni2oem ( /* Returns OEM code character, zero on error */
function WCHAR (line 15315) | WCHAR ff_oem2uni ( /* Returns Unicode character, zero on error */
function WCHAR (line 15362) | WCHAR ff_uni2oem ( /* Returns OEM code character, zero on error */
function WCHAR (line 15414) | WCHAR ff_oem2uni ( /* Returns Unicode character, zero on error */
function DWORD (line 15468) | DWORD ff_wtoupper ( /* Returns up-converted code point */
FILE: Huawei_LiteOS/components/fs/fatfs/ff13b/source/integer.h
type QWORD (line 11) | typedef unsigned __int64 QWORD;
type INT (line 16) | typedef int INT;
type UINT (line 17) | typedef unsigned int UINT;
type BYTE (line 20) | typedef unsigned char BYTE;
type SHORT (line 23) | typedef short SHORT;
type WORD (line 24) | typedef unsigned short WORD;
type WCHAR (line 25) | typedef unsigned short WCHAR;
type LONG (line 28) | typedef long LONG;
type DWORD (line 29) | typedef unsigned long DWORD;
type QWORD (line 32) | typedef unsigned long long QWORD;
FILE: Huawei_LiteOS/components/fs/fatfs/los_fatfs.c
type disk_mnt (line 64) | struct disk_mnt
function ret_to_errno (line 71) | static int ret_to_errno(FRESULT result)
function fatfs_link_driver (line 162) | static int fatfs_link_driver(const struct diskio_drv *drv, uint8_t lun)
function fatfs_unlink_driver (line 191) | static int fatfs_unlink_driver(uint8_t drive, uint8_t lun)
function fatfs_register (line 210) | int fatfs_register(const struct diskio_drv *drv)
function fatfs_unregister (line 215) | int fatfs_unregister(uint8_t drive)
function fatfs_flags_get (line 220) | static int fatfs_flags_get (int oflags)
function fatfs_op_open (line 262) | static int fatfs_op_open (struct file *file, const char *path_in_mp, int...
function fatfs_op_close (line 308) | static int fatfs_op_close (struct file *file)
function fatfs_op_read (line 325) | static ssize_t fatfs_op_read (struct file *file, char *buff, size_t bytes)
function fatfs_op_write (line 344) | static ssize_t fatfs_op_write (struct file *file, const char *buff, size...
function off_t (line 363) | static off_t fatfs_op_lseek (struct file *file, off_t off, int whence)
function fatfs_op_stat (line 398) | int fatfs_op_stat (struct mount_point *mp, const char *path_in_mp, struc...
function fatfs_op_unlink (line 421) | static int fatfs_op_unlink (struct mount_point *mp, const char *path_in_mp)
function fatfs_op_rename (line 438) | static int fatfs_op_rename (struct mount_point *mp, const char *path_in_...
function fatfs_op_sync (line 445) | static int fatfs_op_sync (struct file *file)
function fatfs_op_opendir (line 456) | static int fatfs_op_opendir (struct dir *dir, const char *path)
function fatfs_op_readdir (line 483) | static int fatfs_op_readdir (struct dir *dir, struct dirent *dent)
function fatfs_op_closedir (line 515) | static int fatfs_op_closedir (struct dir *dir)
function fatfs_op_mkdir (line 532) | static int fatfs_op_mkdir(struct mount_point *mp, const char *path)
type file_ops (line 548) | struct file_ops
type file_system (line 566) | struct file_system
function fatfs_init (line 574) | int fatfs_init (void)
function fatfs_mount (line 603) | int fatfs_mount(const char *path, struct diskio_drv *drv, uint8_t *drive)
function fatfs_unmount (line 668) | int fatfs_unmount(const char *path, uint8_t drive)
FILE: Huawei_LiteOS/components/fs/kifs/los_kifs.c
type kifs_node (line 49) | struct kifs_node
type kifs_node (line 68) | struct kifs_node
type kifs_node (line 68) | struct kifs_node
type kifs_node (line 72) | struct kifs_node
type kifs_node (line 77) | struct kifs_node
function kifs_open (line 135) | static int kifs_open (struct file *file, const char *path_in_mp, int flags)
function kifs_close (line 175) | static int kifs_close (struct file *file)
function kifs_read (line 197) | static ssize_t kifs_read (struct file *file, char *buff, size_t bytes)
function kifs_write (line 225) | static ssize_t kifs_write (struct file *file, const char *buff, size_t b...
function kifs_ioctl (line 253) | static int kifs_ioctl (struct file *file, int func, unsigned long arg)
function kifs_opendir (line 273) | static int kifs_opendir (struct dir *dir, const char *path_in_mp)
function kifs_readdir (line 298) | static int kifs_readdir (struct dir *dir, struct dirent *dent)
function kifs_closedir (line 341) | static int kifs_closedir (struct dir *dir)
type file_ops (line 346) | struct file_ops
type file_system (line 364) | struct file_system
type kifs_node (line 372) | struct kifs_node
type kifs_node (line 376) | struct kifs_node
type kifs_node (line 377) | struct kifs_node
type kifs_node (line 385) | struct kifs_node
type kifs_node (line 409) | struct kifs_node
type kifs_node (line 409) | struct kifs_node
type kifs_node (line 418) | struct kifs_node
type kifs_node (line 437) | struct kifs_node
type kifs_node (line 437) | struct kifs_node
type kifs_node (line 446) | struct kifs_node
function los_kifs_create (line 457) | int los_kifs_create (void *root, const char *path_in_mp, uint32_t flags,
function los_kifs_link (line 480) | int los_kifs_link (void *root, const char *path_in_mp, uint32_t flags,
type kifs_node (line 506) | struct kifs_node
type kifs_node (line 519) | struct kifs_node
type kifs_node (line 519) | struct kifs_node
type kifs_node (line 528) | struct kifs_node
function los_kifs_init (line 544) | int los_kifs_init (void)
FILE: Huawei_LiteOS/components/fs/ramfs/los_ramfs.c
type ramfs_element (line 54) | struct ramfs_element
type ramfs_mount_point (line 75) | struct ramfs_mount_point
type ramfs_element (line 81) | struct ramfs_element
type mount_point (line 81) | struct mount_point
type ramfs_element (line 85) | struct ramfs_element
type ramfs_mount_point (line 89) | struct ramfs_mount_point
type ramfs_element (line 94) | struct ramfs_element
function ramfs_open (line 152) | static int ramfs_open (struct file *file, const char *path_in_mp, int fl...
function ramfs_close (line 263) | static int ramfs_close (struct file *file)
function ramfs_read (line 272) | static ssize_t ramfs_read (struct file *file, char *buff, size_t bytes)
function ramfs_write (line 298) | static ssize_t ramfs_write (struct file *file, const char *buff, size_t ...
function off_t (line 339) | static off_t ramfs_lseek (struct file *file, off_t off, int whence)
function ramfs_del (line 372) | static void ramfs_del (struct ramfs_element *e)
function ramfs_unlink (line 403) | static int ramfs_unlink (struct mount_point *mp, const char *path_in_mp)
function ramfs_rename (line 444) | static int ramfs_rename (struct mount_point *mp, const char *path_in_mp_...
function ramfs_opendir (line 498) | static int ramfs_opendir (struct dir *dir, const char *path_in_mp)
function ramfs_readdir (line 525) | static int ramfs_readdir (struct dir *dir, struct dirent *dent)
function ramfs_closedir (line 563) | static int ramfs_closedir (struct dir *dir)
function ramfs_mkdir (line 572) | static int ramfs_mkdir (struct mount_point *mp, const char *path_in_mp)
type file_ops (line 629) | struct file_ops
type file_system (line 647) | struct file_system
function ramfs_mount (line 655) | int ramfs_mount (const char *path, size_t block_size)
function ramfs_init (line 707) | int ramfs_init (void)
function ramfs_ls (line 744) | void ramfs_ls (struct ramfs_element *dir, int level)
type mount_point (line 768) | struct mount_point
function ramfs_tree (line 770) | void ramfs_tree (const char *mount_path)
FILE: Huawei_LiteOS/components/fs/spiffs/los_spiffs.c
function ret_to_errno (line 50) | static int ret_to_errno(int ret)
function spiffs_flags_get (line 143) | static int spiffs_flags_get (int oflags)
function spiffs_op_open (line 185) | static int spiffs_op_open (struct file *file, const char *path_in_mp, in...
function spiffs_file (line 202) | static spiffs_file spifd_from_file (struct file *file)
function spiffs_op_close (line 207) | static int spiffs_op_close (struct file *file)
function spiffs_op_read (line 216) | static ssize_t spiffs_op_read (struct file *file, char *buff, size_t bytes)
function spiffs_op_write (line 228) | static ssize_t spiffs_op_write (struct file *file, const char *buff, siz...
function off_t (line 240) | static off_t spiffs_op_lseek (struct file *file, off_t off, int whence)
function spiffs_op_stat (line 249) | int spiffs_op_stat (struct mount_point *mp, const char *path_in_mp, stru...
function spiffs_op_unlink (line 271) | static int spiffs_op_unlink (struct mount_point *mp, const char *path_in...
function spiffs_op_rename (line 277) | static int spiffs_op_rename (struct mount_point *mp, const char *path_in...
function spiffs_op_sync (line 284) | static int spiffs_op_sync (struct file *file)
function spiffs_op_opendir (line 293) | static int spiffs_op_opendir (struct dir *dir, const char *path)
function spiffs_op_readdir (line 319) | int spiffs_op_readdir (struct dir *dir, struct dirent *dent)
function spiffs_op_closedir (line 344) | static int spiffs_op_closedir (struct dir *dir)
type file_ops (line 355) | struct file_ops
type file_system (line 373) | struct file_system
function spiffs_mount (line 386) | int spiffs_mount (const char *path, u32_t phys_addr, u32_t phys_size,
function spiffs_unmount (line 475) | int spiffs_unmount(const char *path)
function spiffs_init (line 504) | int spiffs_init (void)
FILE: Huawei_LiteOS/components/fs/spiffs/spiffs_git/src/default/spiffs_config.h
type s32_t (line 358) | typedef signed long s32_t;
type u32_t (line 359) | typedef unsigned long u32_t;
type s16_t (line 360) | typedef signed short s16_t;
type u16_t (line 361) | typedef unsigned short u16_t;
type s8_t (line 362) | typedef signed char s8_t;
type u8_t (line 363) | typedef unsigned char u8_t;
type u16_t (line 373) | typedef u16_t spiffs_block_ix;
type u16_t (line 376) | typedef u16_t spiffs_page_ix;
type u16_t (line 380) | typedef u16_t spiffs_obj_id;
type u16_t (line 384) | typedef u16_t spiffs_span_ix;
FILE: Huawei_LiteOS/components/fs/spiffs/spiffs_git/src/spiffs.h
type s16_t (line 72) | typedef s16_t spiffs_file;
type u16_t (line 74) | typedef u16_t spiffs_flags;
type u16_t (line 76) | typedef u16_t spiffs_mode;
type u8_t (line 78) | typedef u8_t spiffs_obj_type;
type spiffs_t (line 80) | struct spiffs_t
type s32_t (line 85) | typedef s32_t (*spiffs_read)(struct spiffs_t *fs, u32_t addr, u32_t size...
type s32_t (line 87) | typedef s32_t (*spiffs_write)(struct spiffs_t *fs, u32_t addr, u32_t siz...
type s32_t (line 89) | typedef s32_t (*spiffs_erase)(struct spiffs_t *fs, u32_t addr, u32_t size);
type s32_t (line 94) | typedef s32_t (*spiffs_read)(u32_t addr, u32_t size, u8_t *dst);
type s32_t (line 96) | typedef s32_t (*spiffs_write)(u32_t addr, u32_t size, u8_t *src);
type s32_t (line 98) | typedef s32_t (*spiffs_erase)(u32_t addr, u32_t size);
type spiffs_check_type (line 102) | typedef enum {
type spiffs_check_report (line 109) | typedef enum {
type spiffs_t (line 121) | struct spiffs_t
type spiffs_fileop_type (line 129) | typedef enum {
type spiffs_t (line 139) | struct spiffs_t
type spiffs_config (line 200) | typedef struct {
type spiffs (line 231) | typedef struct spiffs_t {
type spiffs_stat (line 297) | typedef struct {
type spiffs_dirent (line 308) | struct spiffs_dirent {
type spiffs_DIR (line 319) | typedef struct {
type spiffs_ix_map (line 327) | typedef struct {
type spiffs_dirent (line 435) | struct spiffs_dirent
type spiffs_dirent (line 590) | struct spiffs_dirent
type spiffs_dirent (line 590) | struct spiffs_dirent
FILE: Huawei_LiteOS/components/fs/spiffs/spiffs_git/src/spiffs_cache.c
function spiffs_cache_page (line 14) | static spiffs_cache_page *spiffs_cache_page_get(spiffs *fs, spiffs_page_...
function s32_t (line 36) | static s32_t spiffs_cache_page_free(spiffs *fs, int ix, u8_t write_back)
function s32_t (line 70) | static s32_t spiffs_cache_page_remove_oldest(spiffs *fs, u8_t flag_mask,...
function spiffs_cache_page (line 105) | static spiffs_cache_page *spiffs_cache_page_allocate(spiffs *fs)
function spiffs_cache_drop_page (line 130) | void spiffs_cache_drop_page(spiffs *fs, spiffs_page_ix pix)
function s32_t (line 142) | s32_t spiffs_phys_rd(
function s32_t (line 213) | s32_t spiffs_phys_wr(
function spiffs_cache_page (line 264) | spiffs_cache_page *spiffs_cache_page_get_by_fd(spiffs *fs, spiffs_fd *fd)
function spiffs_cache_page (line 291) | spiffs_cache_page *spiffs_cache_page_allocate_by_fd(spiffs *fs, spiffs_f...
function spiffs_cache_fd_release (line 311) | void spiffs_cache_fd_release(spiffs *fs, spiffs_cache_page *cp)
function spiffs_cache_init (line 332) | void spiffs_cache_init(spiffs *fs)
FILE: Huawei_LiteOS/components/fs/spiffs/spiffs_git/src/spiffs_check.c
function s32_t (line 46) | static s32_t spiffs_object_get_data_page_index_reference(
function s32_t (line 81) | static s32_t spiffs_rewrite_page(spiffs *fs, spiffs_page_ix cur_pix, spi...
function s32_t (line 96) | static s32_t spiffs_rewrite_index(spiffs *fs, spiffs_obj_id obj_id, spif...
function s32_t (line 171) | static s32_t spiffs_delete_obj_lazy(spiffs *fs, spiffs_obj_id obj_id)
function s32_t (line 196) | static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_o...
function s32_t (line 535) | static s32_t spiffs_lookup_check_v(spiffs *fs, spiffs_obj_id obj_id, spi...
function s32_t (line 567) | s32_t spiffs_lookup_consistency_check(spiffs *fs, u8_t check_all_objects)
function s32_t (line 604) | static s32_t spiffs_page_consistency_check_i(spiffs *fs)
function s32_t (line 1002) | s32_t spiffs_page_consistency_check(spiffs *fs)
function spiffs_object_index_search (line 1019) | static int spiffs_object_index_search(spiffs *fs, spiffs_obj_id obj_id)
function s32_t (line 1034) | static s32_t spiffs_object_index_consistency_check_v(spiffs *fs, spiffs_...
function s32_t (line 1149) | s32_t spiffs_object_index_consistency_check(spiffs *fs)
FILE: Huawei_LiteOS/components/fs/spiffs/spiffs_git/src/spiffs_gc.c
function s32_t (line 9) | static s32_t spiffs_gc_erase_block(
function s32_t (line 34) | s32_t spiffs_gc_quick(
function s32_t (line 123) | s32_t spiffs_gc_check(
function s32_t (line 224) | s32_t spiffs_gc_erase_page_stats(
function s32_t (line 269) | s32_t spiffs_gc_find_candidate(
type spiffs_gc_clean_state (line 398) | typedef enum
type spiffs_gc (line 406) | typedef struct
function s32_t (line 430) | s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix)
FILE: Huawei_LiteOS/components/fs/spiffs/spiffs_git/src/spiffs_hydrogen.c
function u32_t (line 16) | u32_t SPIFFS_buffer_bytes_for_filedescs(spiffs *fs, u32_t num_descs)
function u32_t (line 21) | u32_t SPIFFS_buffer_bytes_for_cache(spiffs *fs, u32_t num_pages)
function u8_t (line 28) | u8_t SPIFFS_mounted(spiffs *fs)
function s32_t (line 33) | s32_t SPIFFS_format(spiffs *fs)
function s32_t (line 70) | s32_t SPIFFS_probe_fs(spiffs_config *config)
function s32_t (line 79) | s32_t SPIFFS_mount(spiffs *fs, spiffs_config *config, u8_t *work,
function SPIFFS_unmount (line 167) | void SPIFFS_unmount(spiffs *fs)
function s32_t (line 190) | s32_t SPIFFS_errno(spiffs *fs)
function SPIFFS_clearerr (line 195) | void SPIFFS_clearerr(spiffs *fs)
function s32_t (line 201) | s32_t SPIFFS_creat(spiffs *fs, const char *path, spiffs_mode mode)
function spiffs_file (line 230) | spiffs_file SPIFFS_open(spiffs *fs, const char *path, spiffs_flags flags...
function spiffs_file (line 325) | spiffs_file SPIFFS_open_by_dirent(spiffs *fs, struct spiffs_dirent *e, s...
function spiffs_file (line 362) | spiffs_file SPIFFS_open_by_page(spiffs *fs, spiffs_page_ix page_ix, spif...
function s32_t (line 415) | static s32_t spiffs_hydro_read(spiffs *fs, spiffs_file fh, void *buf, s3...
function s32_t (line 479) | s32_t SPIFFS_read(spiffs *fs, spiffs_file fh, void *buf, s32_t len)
function s32_t (line 492) | static s32_t spiffs_hydro_write(spiffs *fs, spiffs_fd *fd, void *buf, u3...
function s32_t (line 518) | s32_t SPIFFS_write(spiffs *fs, spiffs_file fh, void *buf, s32_t len)
function s32_t (line 683) | s32_t SPIFFS_lseek(spiffs *fs, spiffs_file fh, s32_t offs, int whence)
function s32_t (line 747) | s32_t SPIFFS_remove(spiffs *fs, const char *path)
function s32_t (line 796) | s32_t SPIFFS_fremove(spiffs *fs, spiffs_file fh)
function s32_t (line 834) | static s32_t spiffs_stat_pix(spiffs *fs, spiffs_page_ix pix, spiffs_file...
function s32_t (line 861) | s32_t SPIFFS_stat(spiffs *fs, const char *path, spiffs_stat *s)
function s32_t (line 885) | s32_t SPIFFS_fstat(spiffs *fs, spiffs_file fh, spiffs_stat *s)
function s32_t (line 913) | static s32_t spiffs_fflush_cache(spiffs *fs, spiffs_file fh)
function s32_t (line 951) | s32_t SPIFFS_fflush(spiffs *fs, spiffs_file fh)
function s32_t (line 969) | s32_t SPIFFS_close(spiffs *fs, spiffs_file fh)
function s32_t (line 991) | s32_t SPIFFS_rename(spiffs *fs, const char *old_path, const char *new_path)
function s32_t (line 1056) | s32_t SPIFFS_update_meta(spiffs *fs, const char *name, const void *meta)
function s32_t (line 1097) | s32_t SPIFFS_fupdate_meta(spiffs *fs, spiffs_file fh, const void *meta)
function spiffs_DIR (line 1135) | spiffs_DIR *SPIFFS_opendir(spiffs *fs, const char *name, spiffs_DIR *d)
function s32_t (line 1158) | static s32_t spiffs_read_dir_v(
type spiffs_dirent (line 1198) | struct spiffs_dirent
type spiffs_dirent (line 1198) | struct spiffs_dirent
type spiffs_dirent (line 1211) | struct spiffs_dirent
function s32_t (line 1238) | s32_t SPIFFS_closedir(spiffs_DIR *d)
function s32_t (line 1246) | s32_t SPIFFS_check(spiffs *fs)
function s32_t (line 1271) | s32_t SPIFFS_info(spiffs *fs, u32_t *total, u32_t *used)
function s32_t (line 1299) | s32_t SPIFFS_gc_quick(spiffs *fs, u16_t max_free_pages)
function s32_t (line 1321) | s32_t SPIFFS_gc(spiffs *fs, u32_t size)
function s32_t (line 1342) | s32_t SPIFFS_eof(spiffs *fs, spiffs_file fh)
function s32_t (line 1367) | s32_t SPIFFS_tell(spiffs *fs, spiffs_file fh)
function s32_t (line 1392) | s32_t SPIFFS_set_file_callback_func(spiffs *fs, spiffs_file_callback cb_...
function s32_t (line 1403) | s32_t SPIFFS_ix_map(spiffs *fs, spiffs_file fh, spiffs_ix_map *map,
function s32_t (line 1439) | s32_t SPIFFS_ix_unmap(spiffs *fs, spiffs_file fh)
function s32_t (line 1464) | s32_t SPIFFS_ix_remap(spiffs *fs, spiffs_file fh, u32_t offset)
function s32_t (line 1537) | s32_t SPIFFS_bytes_to_ix_map_entries(spiffs *fs, u32_t bytes)
function s32_t (line 1544) | s32_t SPIFFS_ix_map_entries_to_bytes(spiffs *fs, u32_t map_page_ix_entries)
function s32_t (line 1553) | s32_t SPIFFS_vis(spiffs *fs)
FILE: Huawei_LiteOS/components/fs/spiffs/spiffs_git/src/spiffs_nucleus.c
function s32_t (line 4) | static s32_t spiffs_page_data_check(spiffs *fs, spiffs_fd *fd, spiffs_pa...
function s32_t (line 37) | static s32_t spiffs_page_index_check(spiffs *fs, spiffs_fd *fd, spiffs_p...
function s32_t (line 72) | s32_t spiffs_phys_rd(
function s32_t (line 81) | s32_t spiffs_phys_wr(
function s32_t (line 93) | s32_t spiffs_phys_cpy(
function s32_t (line 136) | s32_t spiffs_obj_lu_find_entry_visitor(
function s32_t (line 258) | s32_t spiffs_erase_block(
function s32_t (line 303) | s32_t spiffs_probe(
function s32_t (line 361) | static s32_t spiffs_obj_lu_scan_v(
function s32_t (line 396) | s32_t spiffs_obj_lu_scan(
function s32_t (line 511) | s32_t spiffs_obj_lu_find_free(
function s32_t (line 554) | s32_t spiffs_obj_lu_find_id(
function s32_t (line 572) | static s32_t spiffs_obj_lu_find_id_and_span_v(
function s32_t (line 602) | s32_t spiffs_obj_lu_find_id_and_span(
function s32_t (line 644) | s32_t spiffs_obj_lu_find_id_and_span_by_phdr(
function spiffs_update_ix_map (line 687) | static void spiffs_update_ix_map(spiffs *fs,
type spiffs_ix_map_populate_state (line 746) | typedef struct
function s32_t (line 754) | static s32_t spiffs_populate_ix_map_v(
function s32_t (line 804) | s32_t spiffs_populate_ix_map(spiffs *fs, spiffs_fd *fd, u32_t vec_entry_...
function s32_t (line 848) | s32_t spiffs_page_allocate_data(
function s32_t (line 911) | s32_t spiffs_page_move(
function s32_t (line 980) | s32_t spiffs_page_delete(
function s32_t (line 1017) | s32_t spiffs_object_create(
function s32_t (line 1089) | s32_t spiffs_object_update_index_hdr(
function spiffs_cb_object_event (line 1160) | void spiffs_cb_object_event(
function s32_t (line 1301) | s32_t spiffs_object_open_by_id(
function s32_t (line 1320) | s32_t spiffs_object_open_by_page(
function s32_t (line 1361) | s32_t spiffs_object_append(spiffs_fd *fd, u32_t offset, u8_t *data, u32_...
function s32_t (line 1644) | s32_t spiffs_object_modify(spiffs_fd *fd, u32_t offset, u8_t *data, u32_...
function s32_t (line 1873) | static s32_t spiffs_object_find_object_index_header_by_name_v(
function s32_t (line 1907) | s32_t spiffs_object_find_object_index_header_by_name(
function s32_t (line 1946) | s32_t spiffs_object_truncate(
type spiffs_free_obj_id_state (line 2332) | typedef struct
function s32_t (line 2340) | static s32_t spiffs_obj_lu_find_free_obj_id_bitmap_v(spiffs *fs, spiffs_...
function s32_t (line 2379) | static s32_t spiffs_obj_lu_find_free_obj_id_compact_v(spiffs *fs, spiffs...
function s32_t (line 2418) | s32_t spiffs_obj_lu_find_free_obj_id(spiffs *fs, spiffs_obj_id *obj_id, ...
function u32_t (line 2534) | static u32_t spiffs_hash(spiffs *fs, const u8_t *name)
function s32_t (line 2548) | s32_t spiffs_fd_find_new(spiffs *fs, spiffs_fd **fd, const char *name)
function s32_t (line 2647) | s32_t spiffs_fd_return(spiffs *fs, spiffs_file f)
function s32_t (line 2666) | s32_t spiffs_fd_get(spiffs *fs, spiffs_file f, spiffs_fd **fd)
function spiffs_fd_temporal_cache_rehash (line 2682) | void spiffs_fd_temporal_cache_rehash(
FILE: Huawei_LiteOS/components/fs/spiffs/spiffs_git/src/spiffs_nucleus.h
type spiffs_cache_page (line 401) | typedef struct {
type spiffs_cache (line 429) | typedef struct {
type spiffs_fd (line 441) | typedef struct {
type spiffs_page_header (line 483) | typedef struct SPIFFS_PACKED {
type SPIFFS_ALIGNED_OBJECT_INDEX_TABLES (line 493) | typedef struct SPIFFS_PACKED
type spiffs_page_object_ix (line 516) | typedef struct SPIFFS_PACKED {
type s32_t (line 522) | typedef s32_t (*spiffs_visitor_f)(spiffs *fs, spiffs_obj_id id, spiffs_b...
FILE: Huawei_LiteOS/components/fs/vfs/los_vfs.c
type file (line 48) | struct file
type mount_point (line 50) | struct mount_point
type file_system (line 51) | struct file_system
function _file_2_fd (line 53) | static int _file_2_fd (struct file *file)
type file (line 58) | struct file
type file (line 63) | struct file
function los_file_put (line 81) | static void los_file_put(struct file *file)
type mount_point (line 93) | struct mount_point
type mount_point (line 95) | struct mount_point
type mount_point (line 96) | struct mount_point
function los_open (line 182) | int los_open (const char *path, int flags)
type file (line 272) | struct file
type file (line 274) | struct file
type file (line 347) | struct file
type file (line 352) | struct file
function UINT32 (line 357) | static UINT32 los_detach_file (struct file *file)
function los_close (line 362) | int los_close (int fd)
function los_read (line 395) | ssize_t los_read (int fd, char *buff, size_t bytes)
function los_write (line 433) | ssize_t los_write (int fd, const void *buff, size_t bytes)
function off_t (line 471) | off_t los_lseek (int fd, off_t off, int whence)
function los_stat (line 497) | int los_stat (const char *path, struct stat *stat)
function los_unlink (line 538) | int los_unlink (const char *path)
function los_rename (line 569) | int los_rename (const char *old, const char *new)
function los_ioctl (line 631) | int los_ioctl (int fd, int func, ...)
function los_sync (line 663) | int los_sync
Copy disabled (too large)
Download .json
Condensed preview — 2297 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,570K chars).
[
{
"path": "CNAME",
"chars": 21,
"preview": "awesome-harmonyos.com"
},
{
"path": "Huawei_LiteOS/.github/ISSUE_TEMPLATE/bug_report.md",
"chars": 693,
"preview": "---\nname: Bug report\nabout: Create a report to help us improve\n\n---\n\n* **Describe the bug**\n*A clear and concise descrip"
},
{
"path": "Huawei_LiteOS/.github/ISSUE_TEMPLATE/feature_request.md",
"chars": 575,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\n\n---\n\n* **Is your feature request related to a problem"
},
{
"path": "Huawei_LiteOS/.travis.yml",
"chars": 287,
"preview": "language: c\n\nos: linux\ndist: trusty\n\n\ncompiler: arm-none-eabi-gcc\n\n\nbefore_install:\n - sudo add-apt-repository ppa:tea"
},
{
"path": "Huawei_LiteOS/LICENSE",
"chars": 1573,
"preview": " * Copyright (c) <2013-2018>, <Huawei Technologies Co., Ltd>\n * All rights reserved.\n * Redistribution and use in source"
},
{
"path": "Huawei_LiteOS/README.md",
"chars": 2458,
"preview": "[](https://travis-ci.org/LiteOS/LiteOS)\n\n## Huawe"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m0/gcc/los_dispatch_gcc.S",
"chars": 15059,
"preview": "/** ----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei T"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m0/gcc/los_hw_exc_gcc.S",
"chars": 11189,
"preview": "/*----------------------------------------------------------------------------\n Copyright (c) <2013-2015>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m0/iar/los_dispatch_iar.S",
"chars": 14896,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2016-2018>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m0/keil/los_dispatch_keil.S",
"chars": 14913,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2016-2018>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m0/keil/los_hw_exc_keil.S",
"chars": 11289,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2013-2015>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m0/los_exc.c",
"chars": 23769,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m0/los_exc.inc",
"chars": 2619,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m0/los_exc.ph",
"chars": 4541,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m3/gcc/los_dispatch_gcc.S",
"chars": 14109,
"preview": "/** ----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei T"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m3/gcc/los_hw_exc_gcc.S",
"chars": 20707,
"preview": "/*----------------------------------------------------------------------------\n Copyright (c) <2013-2015>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m3/iar/los_dispatch_iar.S",
"chars": 13973,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2016-2018>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m3/keil/los_dispatch_keil.S",
"chars": 13990,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2016-2018>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m3/keil/los_hw_exc_keil.S",
"chars": 21212,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2013-2015>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m3/los_exc.c",
"chars": 24395,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m3/los_exc.inc",
"chars": 2619,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m3/los_exc.ph",
"chars": 4542,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m3/test_funcs.S",
"chars": 527,
"preview": " AREA sectionname ,CODE ,READONLY\n EXPORT TEST_NONALIGNED\n EXPORT TEST_PREFETCH\n EXPORT TEST_NOSUPERVISORVISIT\n EXPORT T"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m4/Makefile",
"chars": 21,
"preview": "objs-y += los_exc.o\n\n"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m4/gcc/los_dispatch_gcc.S",
"chars": 15649,
"preview": "/** ----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei T"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m4/gcc/los_hw_exc_gcc.S",
"chars": 24795,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m4/iar/los_dispatch_iar.S",
"chars": 15427,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2016-2018>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m4/iar/los_hw_exc_iar.S",
"chars": 24403,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2013-2015>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m4/keil/los_dispatch_keil.S",
"chars": 15459,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2016-2018>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m4/keil/los_hw_exc_keil.S",
"chars": 24420,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2013-2015>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m4/los_exc.c",
"chars": 24385,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m4/los_exc.inc",
"chars": 2619,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m4/los_exc.ph",
"chars": 4546,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m7/gcc/los_dispatch_gcc.S",
"chars": 15649,
"preview": "/** ----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei T"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m7/gcc/los_hw_exc_gcc.S",
"chars": 24795,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m7/iar/los_dispatch_iar.S",
"chars": 15427,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2016-2018>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m7/keil/los_dispatch_keil.S",
"chars": 15459,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2016-2018>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m7/keil/los_hw_exc_keil.S",
"chars": 24420,
"preview": ";----------------------------------------------------------------------------\n ; Copyright (c) <2013-2015>, <Huawei Tech"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m7/los_exc.c",
"chars": 24456,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m7/los_exc.inc",
"chars": 5522,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/cortex-m7/los_exc.ph",
"chars": 4109,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/include/los_exc.h",
"chars": 9560,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/include/los_hw.h",
"chars": 5885,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/include/los_hw_tick.h",
"chars": 4318,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/include/los_hwi.h",
"chars": 19375,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2015>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/src/los_hw.c",
"chars": 6056,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/src/los_hw_tick.c",
"chars": 7339,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/arm-m/src/los_hwi.c",
"chars": 9892,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/arm_common_tables.h",
"chars": 6035,
"preview": "/* ----------------------------------------------------------------------\n * Project: CMSIS DSP Library\n * Title: "
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/arm_const_structs.h",
"chars": 2961,
"preview": "/* ----------------------------------------------------------------------\n * Project: CMSIS DSP Library\n * Title: "
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/arm_math.h",
"chars": 246761,
"preview": "/* ----------------------------------------------------------------------\n * Project: CMSIS DSP Library\n * Title: "
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/cmsis_armcc.h",
"chars": 25116,
"preview": "/**************************************************************************//**\n * @file cmsis_armcc.h\n * @brief "
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/cmsis_armclang.h",
"chars": 52439,
"preview": "/**************************************************************************//**\n * @file cmsis_armclang.h\n * @brief "
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/cmsis_compiler.h",
"chars": 6737,
"preview": "/**************************************************************************//**\n * @file cmsis_compiler.h\n * @brief "
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/cmsis_gcc.h",
"chars": 57462,
"preview": "/**************************************************************************//**\n * @file cmsis_gcc.h\n * @brief CM"
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_armv8mbl.h",
"chars": 94808,
"preview": "/**************************************************************************//**\n * @file core_armv8mbl.h\n * @brief "
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_armv8mml.h",
"chars": 166398,
"preview": "/**************************************************************************//**\n * @file core_armv8mml.h\n * @brief "
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_cm0.h",
"chars": 37375,
"preview": "/**************************************************************************//**\n * @file core_cm0.h\n * @brief CMS"
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_cm0plus.h",
"chars": 45281,
"preview": "/**************************************************************************//**\n * @file core_cm0plus.h\n * @brief "
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_cm23.h",
"chars": 94727,
"preview": "/**************************************************************************//**\n * @file core_cm23.h\n * @brief CM"
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_cm3.h",
"chars": 109091,
"preview": "\n/**************************************************************************//**\n * @file core_cm3.h\n * @brief CM"
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_cm33.h",
"chars": 166326,
"preview": "/**************************************************************************//**\n * @file core_cm33.h\n * @brief CM"
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_cm4.h",
"chars": 119974,
"preview": "/**************************************************************************//**\n * @file core_cm4.h\n * @brief CMS"
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_cm7.h",
"chars": 144054,
"preview": "/**************************************************************************//**\n * @file core_cm7.h\n * @brief CMS"
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_sc000.h",
"chars": 45370,
"preview": "/**************************************************************************//**\n * @file core_sc000.h\n * @brief C"
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/core_sc300.h",
"chars": 107339,
"preview": "/**************************************************************************//**\n * @file core_sc300.h\n * @brief C"
},
{
"path": "Huawei_LiteOS/arch/arm/common/cmsis/tz_context.h",
"chars": 2522,
"preview": "/*\n * Copyright (c) 2015-2016 ARM Limited. All rights reserved.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * Licensed"
},
{
"path": "Huawei_LiteOS/arch/msp430/include/los_hw.h",
"chars": 5654,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/msp430/include/los_hwi.h",
"chars": 8416,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/msp430/src/ccsmacros.h",
"chars": 3238,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/msp430/src/los_dispatch_ccs.asm",
"chars": 8317,
"preview": ";/*----------------------------------------------------------------------------\n; * Copyright (c) <2013-2018>, <Huawei T"
},
{
"path": "Huawei_LiteOS/arch/msp430/src/los_dispatch_iar.s43",
"chars": 8069,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/msp430/src/los_hw.c",
"chars": 4793,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/msp430/src/los_hw_tick.c",
"chars": 2978,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/arch/msp430/src/los_hwi.c",
"chars": 5230,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2013-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/build/Makefile",
"chars": 19,
"preview": "#blank makefile now"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/agent_list.h",
"chars": 5480,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/agenttiny.c",
"chars": 20884,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_context.h",
"chars": 3326,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_fota_manager.c",
"chars": 13141,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_fota_manager.h",
"chars": 5790,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_fota_state.c",
"chars": 13043,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_fota_state.h",
"chars": 5227,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_rpt.c",
"chars": 11488,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/atiny_rpt.h",
"chars": 3909,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/connection.c",
"chars": 15988,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/connection.h",
"chars": 4547,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/firmware_update.c",
"chars": 12730,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/firmware_update.h",
"chars": 2876,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_access_control.c",
"chars": 22839,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_binary_app_data_container.c",
"chars": 16104,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_comm.h",
"chars": 8652,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_connectivity_moni.c",
"chars": 15870,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_connectivity_stat.c",
"chars": 10745,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_device.c",
"chars": 22716,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_firmware.c",
"chars": 12232,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_location.c",
"chars": 12839,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_security.c",
"chars": 26124,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/object_server.c",
"chars": 19431,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/platform_adapter.c",
"chars": 3900,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/util_timer.c",
"chars": 3225,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_lwm2m/util_timer.h",
"chars": 3181,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2018>, <Huawei Technolo"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_mqtt/flash_manager.c",
"chars": 6744,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_mqtt/flash_manager.h",
"chars": 3214,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_mqtt/hmac.c",
"chars": 3711,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_mqtt/hmac.h",
"chars": 2878,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/agent_tiny/atiny_mqtt/mqtt_client.c",
"chars": 31945,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/CONTRIBUTING.md",
"chars": 1954,
"preview": "# Guide to contributing\n\nPlease read this if you intend to contribute to the project.\n\n## Legal stuff\n\nApologies in adva"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/EDL-v1.0",
"chars": 1585,
"preview": "*Eclipse Distribution License - v 1.0*\n\nCopyright (c) 2007, Eclipse Foundation, Inc. and its licensors.\n\nAll rights rese"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/EPL-v1.0",
"chars": 11269,
"preview": "\n Eclipse Public License - v 1.0\n\nTHE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE\nPUBLIC LICENSE"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/README.md",
"chars": 6023,
"preview": "Wakaama (formerly liblwm2m) is an implementation of the Open Mobile Alliance's LightWeight M2M\nprotocol (LWM2M).\n\nDevelo"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/TODO",
"chars": 1173,
"preview": "LWM2M Features\n--------------\n\n - Access Control List\n \n - JSON support\n \n - Add token in every message\n \n - Handle Obs"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/about.html",
"chars": 2330,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html "
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/block1.c",
"chars": 8167,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/bootstrap.c",
"chars": 25273,
"preview": "/*******************************************************************************\n *\n * Copyright (c) 2015 Sierra Wireles"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/data.c",
"chars": 18938,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/discover.c",
"chars": 15696,
"preview": "/*******************************************************************************\n*\n* Copyright (c) 2015 Intel Corporatio"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/er-coap-13/LICENSE",
"chars": 1649,
"preview": "/*\n * Copyright (c) 2013, Institute for Pervasive Computing, ETH Zurich\n * All rights reserved.\n *\n * Redistribution and"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/er-coap-13/er-coap-13.c",
"chars": 47396,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/er-coap-13/er-coap-13.h",
"chars": 16573,
"preview": "/*\n * Copyright (c) 2013, Institute for Pervasive Computing, ETH Zurich\n * All rights reserved.\n *\n * Redistribution and"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/internals.h",
"chars": 19358,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/json.c",
"chars": 40919,
"preview": "/*******************************************************************************\n *\n * Copyright (c) 2015 Intel Corporat"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/liblwm2m.c",
"chars": 24161,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/liblwm2m.h",
"chars": 34318,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/liblwm2m_api.h",
"chars": 2753,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2018>, <Huawei Technolo"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/list.c",
"chars": 2646,
"preview": "/*******************************************************************************\n *\n * Copyright (c) 2013 Intel Corporat"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/lwm2m_utils.c",
"chars": 13427,
"preview": "/*******************************************************************************\n *\n * Copyright (c) 2013, 2014 Intel Co"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/management.c",
"chars": 32721,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/objects.c",
"chars": 32793,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/observe.c",
"chars": 49214,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/packet.c",
"chars": 19733,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/registration.c",
"chars": 46447,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/tlv.c",
"chars": 15051,
"preview": "/*******************************************************************************\n *\n * Copyright (c) 2013, 2014 Intel Co"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/transaction.c",
"chars": 20805,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/uri.c",
"chars": 9854,
"preview": "/*******************************************************************************\n *\n * Copyright (c) 2013, 2014 Intel Co"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/core/wakaama.cmake",
"chars": 1890,
"preview": "# Provides WAKAAMA_SOURCES_DIR and WAKAAMA_SOURCES and WAKAAMA_DEFINITIONS variables.\n# Add LWM2M_WITH_LOGS to compile d"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/examples/shared/commandline.c",
"chars": 18053,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/lwm2m/examples/shared/commandline.h",
"chars": 4038,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/.cproject",
"chars": 18303,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><?fileVersion 4.0.0?><cproject storage_type_id=\"org.eclipse.cdt.core.XmlProjectDes"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/.gitignore",
"chars": 92,
"preview": "/dep/\n/build/\n/build.paho/\n*.swp\n*.pyc\n/doc/MQTTClient/\n/doc/MQTTPacket/\n/doc/MQTTClient-C/\n"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/.project",
"chars": 762,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>embedded-C</name>\n\t<comment></comment>\n\t<projects>\n\t<"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/.settings/org.eclipse.cdt.core.prefs",
"chars": 13576,
"preview": "eclipse.preferences.version=1\norg.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16\norg.eclipse"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/.settings/org.eclipse.cdt.ui.prefs",
"chars": 119,
"preview": "eclipse.preferences.version=1\nformatter_profile=org.eclipse.cdt.ui.default.allman_profile\nformatter_settings_version=1\n"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/.travis.yml",
"chars": 431,
"preview": "sudo: true\nlanguage: c\n\ncompiler:\n - gcc\n\nos:\n - linux\n\nsudo: required\n\nbefore_install:\n - ./travis-install.sh\n\nscrip"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/CMakeLists.txt",
"chars": 1579,
"preview": "#*******************************************************************************\n# Copyright (c) 2017 IBM Corp.\n#\n# Al"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/CONTRIBUTING.md",
"chars": 3626,
"preview": "# Contributing to Paho\n\nThanks for your interest in this project!\n\nYou can contribute bugfixes and new features by sendi"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/CMakeLists.txt",
"chars": 777,
"preview": "#*******************************************************************************\n# Copyright (c) 2017 IBM Corp.\n#\n# Al"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/samples/CMakeLists.txt",
"chars": 700,
"preview": "#*******************************************************************************\n# Copyright (c) 2017 IBM Corp.\n#\n# Al"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/samples/FreeRTOS/MQTTEcho.c",
"chars": 2988,
"preview": "/* Standard includes. */\n#include <stdint.h>\n#include <stdio.h>\n#include <stdlib.h>\n\n/* FreeRTOS includes. */\n#include \""
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/samples/linux/CMakeLists.txt",
"chars": 956,
"preview": "#*******************************************************************************\n# Copyright (c) 2017 IBM Corp.\n#\n# Al"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/samples/linux/build.sh",
"chars": 713,
"preview": "cp ../../src/MQTTClient.c .\nsed -e 's/\"\"/\"MQTTLinux.h\"/g' ../../src/MQTTClient.h > MQTTClient.h\ngcc stdoutsub.c -I ../.."
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/samples/linux/stdoutsub.c",
"chars": 6228,
"preview": "/*******************************************************************************\n * Copyright (c) 2012, 2016 IBM Corp.\n "
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/CMakeLists.txt",
"chars": 1102,
"preview": "#*******************************************************************************\n# Copyright (c) 2017 IBM Corp.\n#\n# Al"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/FreeRTOS/MQTTFreeRTOS.c",
"chars": 6863,
"preview": "/*******************************************************************************\n * Copyright (c) 2014, 2015 IBM Corp.\n "
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/FreeRTOS/MQTTFreeRTOS.h",
"chars": 1951,
"preview": "/*******************************************************************************\n * Copyright (c) 2014, 2015 IBM Corp.\n "
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/MQTTClient.c",
"chars": 22615,
"preview": "/*******************************************************************************\n * Copyright (c) 2014, 2017 IBM Corp.\n "
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/MQTTClient.h",
"chars": 7751,
"preview": "/*******************************************************************************\n * Copyright (c) 2014, 2017 IBM Corp.\n "
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/cc3200/MQTTCC3200.c",
"chars": 5145,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/cc3200/MQTTCC3200.h",
"chars": 1676,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/linux/MQTTLinux.c",
"chars": 4446,
"preview": "/*******************************************************************************\n * Copyright (c) 2014, 2017 IBM Corp.\n "
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/linux/MQTTLinux.h",
"chars": 2080,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/liteOS/MQTTliteos.c",
"chars": 10862,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/src/liteOS/MQTTliteos.h",
"chars": 3571,
"preview": "/*----------------------------------------------------------------------------\n * Copyright (c) <2016-2018>, <Huawei Tec"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/test/CMakeLists.txt",
"chars": 659,
"preview": "PROJECT(mqtt-tests)\n\nSET(MQTT_TEST_BROKER_HOST \"localhost\" CACHE STRING \"Hostname of a test MQTT broker to use\")\nSET(MQT"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTClient-C/test/test1.c",
"chars": 35007,
"preview": "/*******************************************************************************\n * Copyright (c) 2009, 2017 IBM Corp.\n "
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/CMakeLists.txt",
"chars": 777,
"preview": "#*******************************************************************************\n# Copyright (c) 2017 IBM Corp.\n#\n# Al"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/CMakeLists.txt",
"chars": 1036,
"preview": "#*******************************************************************************\n# Copyright (c) 2017 IBM Corp.\n#\n# Al"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/baremetalserial/build",
"chars": 463,
"preview": "gcc -g -Wall pub0sub1_nb.c transport.c -I ../../src ../../src/MQTTConnectClient.c ../../src/MQTTSerializePublish.c ../.."
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/baremetalserial/ping_nb.c",
"chars": 7713,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/baremetalserial/pub0sub1_nb.c",
"chars": 9287,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/baremetalserial/transport.c",
"chars": 4476,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/baremetalserial/transport.h",
"chars": 3554,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/build",
"chars": 807,
"preview": "gcc -Wall -c transport.c -Os -s\ngcc qos0pub.c transport.o -I ../src ../src/MQTTConnectClient.c ../src/MQTTSerializePubli"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/null.c",
"chars": 50,
"preview": "int main(int argc, char **argv)\n{\n return 0;\n}\n"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/ping.c",
"chars": 3525,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/ping_nb.c",
"chars": 4192,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/pub0sub1.c",
"chars": 4510,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/pub0sub1_nb.c",
"chars": 4757,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/qos0pub.c",
"chars": 2300,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/transport.c",
"chars": 5909,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/samples/transport.h",
"chars": 1085,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/CMakeLists.txt",
"chars": 1411,
"preview": "#*******************************************************************************\n# Copyright (c) 2017 IBM Corp.\n#\n# Al"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTConnect.h",
"chars": 4455,
"preview": "/*******************************************************************************\n * Copyright (c) 2014, 2017 IBM Corp.\n "
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTConnectClient.c",
"chars": 6712,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTConnectServer.c",
"chars": 5174,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTDeserializePublish.c",
"chars": 3721,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTFormat.c",
"chars": 9847,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTFormat.h",
"chars": 2028,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTPacket.c",
"chars": 11289,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTPacket.h",
"chars": 3997,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTPublish.h",
"chars": 1690,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTSerializePublish.c",
"chars": 5560,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTSubscribe.h",
"chars": 1601,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTSubscribeClient.c",
"chars": 4392,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTSubscribeServer.c",
"chars": 3696,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTUnsubscribe.h",
"chars": 1499,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTUnsubscribeClient.c",
"chars": 3529,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/MQTTUnsubscribeServer.c",
"chars": 3226,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/src/StackTrace.h",
"chars": 3160,
"preview": "/*******************************************************************************\n * Copyright (c) 2014 IBM Corp.\n *\n * A"
},
{
"path": "Huawei_LiteOS/components/connectivity/mqtt/MQTTPacket/test/CMakeLists.txt",
"chars": 997,
"preview": "PROJECT(mqttpacket-tests)\n\nIF (WIN32)\n SET(MQTT_TEST_BROKER \"tcp://mqtt.iotree.co.uk:1883\" CACHE STRING \"Hostname of a "
}
]
// ... and 2097 more files (download for full content)
About this extraction
This page contains the full source code of the Awesome-HarmonyOS/HarmonyOS GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2297 files (43.3 MB), approximately 4.2M tokens, and a symbol index with 7555 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.