diff --git a/.cproject b/.cproject
new file mode 100644
index 0000000..f5251bc
--- /dev/null
+++ b/.cproject
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..dd8b7b2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,71 @@
+.idea/*
+*.su
+# Prerequisites
+*.d
+
+# Object files
+*.o
+*.ko
+*.obj
+*.elf
+
+# Linker output
+*.ilk
+*.map
+*.exp
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Libraries
+*.lib
+*.a
+*.la
+*.lo
+
+# Shared objects (inc. Windows DLLs)
+*.dll
+*.so
+*.so.*
+*.dylib
+
+# Executables
+*.exe
+*.out
+*.app
+*.i*86
+*.x86_64
+*.hex
+
+# Debug files
+*.dSYM/
+*.su
+*.idb
+*.pdb
+
+# Kernel Module Compile Results
+*.mod*
+*.cmd
+.tmp_versions/
+modules.order
+Module.symvers
+Mkfile.old
+dkms.conf
+
+SI/
+
+cscope.*
+
+tags
+
+
+# *.crf
+
+src/MDK/LIST/*
+!src/MDK/LIST/keep-dir.txt
+src/MDK/OUT/*
+!src/MDK/OUT/keep-dir.txt
+*.swp
+*.uvguix.*
+JLinkLog.txt
\ No newline at end of file
diff --git a/.mxproject b/.mxproject
new file mode 100644
index 0000000..e8ca76a
--- /dev/null
+++ b/.mxproject
@@ -0,0 +1,34 @@
+[PreviousLibFiles]
+LibFiles=Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_bus.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_system.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_utils.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dmamux.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_eth.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h;Drivers\BSP\Components\dp83848\dp83848.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ccp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\chap_ms.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\chap-md5.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\chap-new.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\eap.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\eui64.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\fsm.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ipcp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ipv6cp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\lcp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\magic.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\mppe.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ppp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ppp_impl.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ppp_opts.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppapi.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppcrypt.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppdebug.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppoe.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppol2tp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppos.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\upap.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\vj.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ecp.h;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_eth.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;Drivers\BSP\Components\dp83848\dp83848.c;Middlewares\Third_Party\LwIP\src\netif\ppp\auth.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ccp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap_ms.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap-md5.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap-new.c;Middlewares\Third_Party\LwIP\src\netif\ppp\demand.c;Middlewares\Third_Party\LwIP\src\netif\ppp\eap.c;Middlewares\Third_Party\LwIP\src\netif\ppp\eui64.c;Middlewares\Third_Party\LwIP\src\netif\ppp\fsm.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ipcp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ipv6cp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\lcp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\magic.c;Middlewares\Third_Party\LwIP\src\netif\ppp\mppe.c;Middlewares\Third_Party\LwIP\src\netif\ppp\multilink.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ppp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppapi.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppcrypt.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppoe.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppol2tp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppos.c;Middlewares\Third_Party\LwIP\src\netif\ppp\upap.c;Middlewares\Third_Party\LwIP\src\netif\ppp\utils.c;Middlewares\Third_Party\LwIP\src\netif\ppp\vj.c;Middlewares\Third_Party\LwIP\src\netif\bridgeif.c;Middlewares\Third_Party\LwIP\src\netif\bridgeif_fdb.c;Middlewares\Third_Party\LwIP\src\netif\ethernet.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6_ble.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6_common.c;Middlewares\Third_Party\LwIP\src\netif\slipif.c;Middlewares\Third_Party\LwIP\src\netif\zepif.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ecp.c;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_bus.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_rcc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_system.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_utils.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_gpio.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dma.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_dmamux.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_pwr.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_cortex.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_ll_exti.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_eth.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h;Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h;Drivers\BSP\Components\dp83848\dp83848.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ccp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\chap_ms.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\chap-md5.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\chap-new.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\eap.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\eui64.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\fsm.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ipcp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ipv6cp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\lcp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\magic.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\mppe.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ppp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ppp_impl.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ppp_opts.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppapi.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppcrypt.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppdebug.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppoe.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppol2tp.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\pppos.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\upap.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\vj.h;Middlewares\Third_Party\LwIP\src\include\netif\ppp\ecp.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f429xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h;Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;Middlewares\Third_Party\LwIP\src\include\lwip\altcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\altcp_tcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\altcp_tls.h;Middlewares\Third_Party\LwIP\src\include\lwip\api.h;Middlewares\Third_Party\LwIP\src\include\lwip\arch.h;Middlewares\Third_Party\LwIP\src\include\lwip\autoip.h;Middlewares\Third_Party\LwIP\src\include\lwip\debug.h;Middlewares\Third_Party\LwIP\src\include\lwip\def.h;Middlewares\Third_Party\LwIP\src\include\lwip\dhcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\dhcp6.h;Middlewares\Third_Party\LwIP\src\include\lwip\dns.h;Middlewares\Third_Party\LwIP\src\include\lwip\err.h;Middlewares\Third_Party\LwIP\src\include\lwip\errno.h;Middlewares\Third_Party\LwIP\src\include\lwip\etharp.h;Middlewares\Third_Party\LwIP\src\include\lwip\ethip6.h;Middlewares\Third_Party\LwIP\src\include\lwip\icmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\icmp6.h;Middlewares\Third_Party\LwIP\src\include\lwip\if_api.h;Middlewares\Third_Party\LwIP\src\include\lwip\igmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\inet.h;Middlewares\Third_Party\LwIP\src\include\lwip\inet_chksum.h;Middlewares\Third_Party\LwIP\src\include\lwip\init.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip4.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip4_addr.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip4_frag.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip6.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip6_addr.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip6_frag.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip6_zone.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip_addr.h;Middlewares\Third_Party\LwIP\src\include\lwip\mem.h;Middlewares\Third_Party\LwIP\src\include\lwip\memp.h;Middlewares\Third_Party\LwIP\src\include\lwip\mld6.h;Middlewares\Third_Party\LwIP\src\include\lwip\nd6.h;Middlewares\Third_Party\LwIP\src\include\lwip\netbuf.h;Middlewares\Third_Party\LwIP\src\include\lwip\netdb.h;Middlewares\Third_Party\LwIP\src\include\lwip\netif.h;Middlewares\Third_Party\LwIP\src\include\lwip\netifapi.h;Middlewares\Third_Party\LwIP\src\include\lwip\opt.h;Middlewares\Third_Party\LwIP\src\include\lwip\pbuf.h;Middlewares\Third_Party\LwIP\src\include\lwip\raw.h;Middlewares\Third_Party\LwIP\src\include\lwip\sio.h;Middlewares\Third_Party\LwIP\src\include\lwip\snmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\sockets.h;Middlewares\Third_Party\LwIP\src\include\lwip\stats.h;Middlewares\Third_Party\LwIP\src\include\lwip\sys.h;Middlewares\Third_Party\LwIP\src\include\lwip\tcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\tcpbase.h;Middlewares\Third_Party\LwIP\src\include\lwip\tcpip.h;Middlewares\Third_Party\LwIP\src\include\lwip\timeouts.h;Middlewares\Third_Party\LwIP\src\include\lwip\udp.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\altcp_proxyconnect.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\altcp_tls_mbedtls_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\fs.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\httpd.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\httpd_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\http_client.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\lwiperf.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mdns.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mdns_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mdns_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mqtt.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mqtt_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mqtt_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\netbiosns.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\netbiosns_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\smtp.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\smtp_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmpv3.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_core.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_mib2.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_scalar.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_snmpv2_framework.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_snmpv2_usm.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_table.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_threadsync.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\sntp.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\sntp_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\tftp_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\tftp_server.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\altcp_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\api_msg.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\memp_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\memp_std.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\mem_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\nd6_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\raw_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\sockets_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\tcpip_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\tcp_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\autoip.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\dhcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\dhcp6.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\dns.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\etharp.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\ethernet.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\iana.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\icmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\icmp6.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\ieee.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\igmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\ip.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\ip4.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\ip6.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\mld6.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\nd6.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\tcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\udp.h;Middlewares\Third_Party\LwIP\src\include\netif\bridgeif.h;Middlewares\Third_Party\LwIP\src\include\netif\bridgeif_opts.h;Middlewares\Third_Party\LwIP\src\include\netif\etharp.h;Middlewares\Third_Party\LwIP\src\include\netif\ethernet.h;Middlewares\Third_Party\LwIP\src\include\netif\ieee802154.h;Middlewares\Third_Party\LwIP\src\include\netif\lowpan6.h;Middlewares\Third_Party\LwIP\src\include\netif\lowpan6_ble.h;Middlewares\Third_Party\LwIP\src\include\netif\lowpan6_common.h;Middlewares\Third_Party\LwIP\src\include\netif\lowpan6_opts.h;Middlewares\Third_Party\LwIP\src\include\netif\slipif.h;Middlewares\Third_Party\LwIP\src\include\netif\zepif.h;Middlewares\Third_Party\LwIP\src\include\compat\posix\netdb.h;Middlewares\Third_Party\LwIP\src\include\compat\posix\arpa\inet.h;Middlewares\Third_Party\LwIP\src\include\compat\posix\net\if.h;Middlewares\Third_Party\LwIP\src\include\compat\posix\sys\socket.h;Middlewares\Third_Party\LwIP\src\include\compat\stdc\errno.h;Middlewares\Third_Party\LwIP\system\arch\bpstruct.h;Middlewares\Third_Party\LwIP\system\arch\cc.h;Middlewares\Third_Party\LwIP\system\arch\cpu.h;Middlewares\Third_Party\LwIP\system\arch\epstruct.h;Middlewares\Third_Party\LwIP\system\arch\init.h;Middlewares\Third_Party\LwIP\system\arch\lib.h;Middlewares\Third_Party\LwIP\system\arch\perf.h;Middlewares\Third_Party\LwIP\system\arch\sys_arch.h;Middlewares\Third_Party\LwIP\src\api\api_lib.c;Middlewares\Third_Party\LwIP\src\api\api_msg.c;Middlewares\Third_Party\LwIP\src\api\err.c;Middlewares\Third_Party\LwIP\src\api\if_api.c;Middlewares\Third_Party\LwIP\src\api\netbuf.c;Middlewares\Third_Party\LwIP\src\api\netdb.c;Middlewares\Third_Party\LwIP\src\api\netifapi.c;Middlewares\Third_Party\LwIP\src\api\sockets.c;Middlewares\Third_Party\LwIP\src\api\tcpip.c;Middlewares\Third_Party\LwIP\src\core\altcp.c;Middlewares\Third_Party\LwIP\src\core\altcp_alloc.c;Middlewares\Third_Party\LwIP\src\core\altcp_tcp.c;Middlewares\Third_Party\LwIP\src\core\def.c;Middlewares\Third_Party\LwIP\src\core\dns.c;Middlewares\Third_Party\LwIP\src\core\inet_chksum.c;Middlewares\Third_Party\LwIP\src\core\init.c;Middlewares\Third_Party\LwIP\src\core\ip.c;Middlewares\Third_Party\LwIP\src\core\mem.c;Middlewares\Third_Party\LwIP\src\core\memp.c;Middlewares\Third_Party\LwIP\src\core\netif.c;Middlewares\Third_Party\LwIP\src\core\pbuf.c;Middlewares\Third_Party\LwIP\src\core\raw.c;Middlewares\Third_Party\LwIP\src\core\stats.c;Middlewares\Third_Party\LwIP\src\core\sys.c;Middlewares\Third_Party\LwIP\src\core\tcp.c;Middlewares\Third_Party\LwIP\src\core\tcp_in.c;Middlewares\Third_Party\LwIP\src\core\tcp_out.c;Middlewares\Third_Party\LwIP\src\core\timeouts.c;Middlewares\Third_Party\LwIP\src\core\udp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\autoip.c;Middlewares\Third_Party\LwIP\src\core\ipv4\dhcp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\etharp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\icmp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\igmp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4_addr.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4_frag.c;Middlewares\Third_Party\LwIP\src\core\ipv6\dhcp6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ethip6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\icmp6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\inet6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6_addr.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6_frag.c;Middlewares\Third_Party\LwIP\src\core\ipv6\mld6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\nd6.c;Middlewares\Third_Party\LwIP\src\apps\mqtt\mqtt.c;Middlewares\Third_Party\LwIP\src\include\lwip\altcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\altcp_tcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\altcp_tls.h;Middlewares\Third_Party\LwIP\src\include\lwip\api.h;Middlewares\Third_Party\LwIP\src\include\lwip\arch.h;Middlewares\Third_Party\LwIP\src\include\lwip\autoip.h;Middlewares\Third_Party\LwIP\src\include\lwip\debug.h;Middlewares\Third_Party\LwIP\src\include\lwip\def.h;Middlewares\Third_Party\LwIP\src\include\lwip\dhcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\dhcp6.h;Middlewares\Third_Party\LwIP\src\include\lwip\dns.h;Middlewares\Third_Party\LwIP\src\include\lwip\err.h;Middlewares\Third_Party\LwIP\src\include\lwip\errno.h;Middlewares\Third_Party\LwIP\src\include\lwip\etharp.h;Middlewares\Third_Party\LwIP\src\include\lwip\ethip6.h;Middlewares\Third_Party\LwIP\src\include\lwip\icmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\icmp6.h;Middlewares\Third_Party\LwIP\src\include\lwip\if_api.h;Middlewares\Third_Party\LwIP\src\include\lwip\igmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\inet.h;Middlewares\Third_Party\LwIP\src\include\lwip\inet_chksum.h;Middlewares\Third_Party\LwIP\src\include\lwip\init.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip4.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip4_addr.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip4_frag.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip6.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip6_addr.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip6_frag.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip6_zone.h;Middlewares\Third_Party\LwIP\src\include\lwip\ip_addr.h;Middlewares\Third_Party\LwIP\src\include\lwip\mem.h;Middlewares\Third_Party\LwIP\src\include\lwip\memp.h;Middlewares\Third_Party\LwIP\src\include\lwip\mld6.h;Middlewares\Third_Party\LwIP\src\include\lwip\nd6.h;Middlewares\Third_Party\LwIP\src\include\lwip\netbuf.h;Middlewares\Third_Party\LwIP\src\include\lwip\netdb.h;Middlewares\Third_Party\LwIP\src\include\lwip\netif.h;Middlewares\Third_Party\LwIP\src\include\lwip\netifapi.h;Middlewares\Third_Party\LwIP\src\include\lwip\opt.h;Middlewares\Third_Party\LwIP\src\include\lwip\pbuf.h;Middlewares\Third_Party\LwIP\src\include\lwip\raw.h;Middlewares\Third_Party\LwIP\src\include\lwip\sio.h;Middlewares\Third_Party\LwIP\src\include\lwip\snmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\sockets.h;Middlewares\Third_Party\LwIP\src\include\lwip\stats.h;Middlewares\Third_Party\LwIP\src\include\lwip\sys.h;Middlewares\Third_Party\LwIP\src\include\lwip\tcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\tcpbase.h;Middlewares\Third_Party\LwIP\src\include\lwip\tcpip.h;Middlewares\Third_Party\LwIP\src\include\lwip\timeouts.h;Middlewares\Third_Party\LwIP\src\include\lwip\udp.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\altcp_proxyconnect.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\altcp_tls_mbedtls_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\fs.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\httpd.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\httpd_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\http_client.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\lwiperf.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mdns.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mdns_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mdns_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mqtt.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mqtt_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\mqtt_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\netbiosns.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\netbiosns_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\smtp.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\smtp_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmpv3.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_core.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_mib2.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_scalar.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_snmpv2_framework.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_snmpv2_usm.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_table.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\snmp_threadsync.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\sntp.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\sntp_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\tftp_opts.h;Middlewares\Third_Party\LwIP\src\include\lwip\apps\tftp_server.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\altcp_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\api_msg.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\memp_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\memp_std.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\mem_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\nd6_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\raw_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\sockets_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\tcpip_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\priv\tcp_priv.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\autoip.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\dhcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\dhcp6.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\dns.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\etharp.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\ethernet.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\iana.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\icmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\icmp6.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\ieee.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\igmp.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\ip.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\ip4.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\ip6.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\mld6.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\nd6.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\tcp.h;Middlewares\Third_Party\LwIP\src\include\lwip\prot\udp.h;Middlewares\Third_Party\LwIP\src\include\netif\bridgeif.h;Middlewares\Third_Party\LwIP\src\include\netif\bridgeif_opts.h;Middlewares\Third_Party\LwIP\src\include\netif\etharp.h;Middlewares\Third_Party\LwIP\src\include\netif\ethernet.h;Middlewares\Third_Party\LwIP\src\include\netif\ieee802154.h;Middlewares\Third_Party\LwIP\src\include\netif\lowpan6.h;Middlewares\Third_Party\LwIP\src\include\netif\lowpan6_ble.h;Middlewares\Third_Party\LwIP\src\include\netif\lowpan6_common.h;Middlewares\Third_Party\LwIP\src\include\netif\lowpan6_opts.h;Middlewares\Third_Party\LwIP\src\include\netif\slipif.h;Middlewares\Third_Party\LwIP\src\include\netif\zepif.h;Middlewares\Third_Party\LwIP\src\include\compat\posix\netdb.h;Middlewares\Third_Party\LwIP\src\include\compat\posix\arpa\inet.h;Middlewares\Third_Party\LwIP\src\include\compat\posix\net\if.h;Middlewares\Third_Party\LwIP\src\include\compat\posix\sys\socket.h;Middlewares\Third_Party\LwIP\src\include\compat\stdc\errno.h;Middlewares\Third_Party\LwIP\system\arch\bpstruct.h;Middlewares\Third_Party\LwIP\system\arch\cc.h;Middlewares\Third_Party\LwIP\system\arch\cpu.h;Middlewares\Third_Party\LwIP\system\arch\epstruct.h;Middlewares\Third_Party\LwIP\system\arch\init.h;Middlewares\Third_Party\LwIP\system\arch\lib.h;Middlewares\Third_Party\LwIP\system\arch\perf.h;Middlewares\Third_Party\LwIP\system\arch\sys_arch.h;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h;
+
+[PreviousUsedCubeIDEFiles]
+SourceFiles=Core\Src\main.c;LWIP\App\lwip.c;LWIP\Target\ethernetif.c;Core\Src\stm32f4xx_it.c;Core\Src\stm32f4xx_hal_msp.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_eth.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;Drivers\BSP\Components\dp83848\dp83848.c;Middlewares\Third_Party\LwIP\src\netif\ppp\auth.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ccp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap_ms.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap-md5.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap-new.c;Middlewares\Third_Party\LwIP\src\netif\ppp\demand.c;Middlewares\Third_Party\LwIP\src\netif\ppp\eap.c;Middlewares\Third_Party\LwIP\src\netif\ppp\eui64.c;Middlewares\Third_Party\LwIP\src\netif\ppp\fsm.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ipcp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ipv6cp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\lcp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\magic.c;Middlewares\Third_Party\LwIP\src\netif\ppp\mppe.c;Middlewares\Third_Party\LwIP\src\netif\ppp\multilink.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ppp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppapi.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppcrypt.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppoe.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppol2tp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppos.c;Middlewares\Third_Party\LwIP\src\netif\ppp\upap.c;Middlewares\Third_Party\LwIP\src\netif\ppp\utils.c;Middlewares\Third_Party\LwIP\src\netif\ppp\vj.c;Middlewares\Third_Party\LwIP\src\netif\bridgeif.c;Middlewares\Third_Party\LwIP\src\netif\bridgeif_fdb.c;Middlewares\Third_Party\LwIP\src\netif\ethernet.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6_ble.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6_common.c;Middlewares\Third_Party\LwIP\src\netif\slipif.c;Middlewares\Third_Party\LwIP\src\netif\zepif.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ecp.c;Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;Middlewares\Third_Party\LwIP\src\api\api_lib.c;Middlewares\Third_Party\LwIP\src\api\api_msg.c;Middlewares\Third_Party\LwIP\src\api\err.c;Middlewares\Third_Party\LwIP\src\api\if_api.c;Middlewares\Third_Party\LwIP\src\api\netbuf.c;Middlewares\Third_Party\LwIP\src\api\netdb.c;Middlewares\Third_Party\LwIP\src\api\netifapi.c;Middlewares\Third_Party\LwIP\src\api\sockets.c;Middlewares\Third_Party\LwIP\src\api\tcpip.c;Middlewares\Third_Party\LwIP\src\core\altcp.c;Middlewares\Third_Party\LwIP\src\core\altcp_alloc.c;Middlewares\Third_Party\LwIP\src\core\altcp_tcp.c;Middlewares\Third_Party\LwIP\src\core\def.c;Middlewares\Third_Party\LwIP\src\core\dns.c;Middlewares\Third_Party\LwIP\src\core\inet_chksum.c;Middlewares\Third_Party\LwIP\src\core\init.c;Middlewares\Third_Party\LwIP\src\core\ip.c;Middlewares\Third_Party\LwIP\src\core\mem.c;Middlewares\Third_Party\LwIP\src\core\memp.c;Middlewares\Third_Party\LwIP\src\core\netif.c;Middlewares\Third_Party\LwIP\src\core\pbuf.c;Middlewares\Third_Party\LwIP\src\core\raw.c;Middlewares\Third_Party\LwIP\src\core\stats.c;Middlewares\Third_Party\LwIP\src\core\sys.c;Middlewares\Third_Party\LwIP\src\core\tcp.c;Middlewares\Third_Party\LwIP\src\core\tcp_in.c;Middlewares\Third_Party\LwIP\src\core\tcp_out.c;Middlewares\Third_Party\LwIP\src\core\timeouts.c;Middlewares\Third_Party\LwIP\src\core\udp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\autoip.c;Middlewares\Third_Party\LwIP\src\core\ipv4\dhcp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\etharp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\icmp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\igmp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4_addr.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4_frag.c;Middlewares\Third_Party\LwIP\src\core\ipv6\dhcp6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ethip6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\icmp6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\inet6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6_addr.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6_frag.c;Middlewares\Third_Party\LwIP\src\core\ipv6\mld6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\nd6.c;Middlewares\Third_Party\LwIP\src\apps\mqtt\mqtt.c;Core\Src\system_stm32f4xx.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_eth.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c;Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c;Drivers\BSP\Components\dp83848\dp83848.c;Middlewares\Third_Party\LwIP\src\netif\ppp\auth.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ccp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap_ms.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap-md5.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap-new.c;Middlewares\Third_Party\LwIP\src\netif\ppp\demand.c;Middlewares\Third_Party\LwIP\src\netif\ppp\eap.c;Middlewares\Third_Party\LwIP\src\netif\ppp\eui64.c;Middlewares\Third_Party\LwIP\src\netif\ppp\fsm.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ipcp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ipv6cp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\lcp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\magic.c;Middlewares\Third_Party\LwIP\src\netif\ppp\mppe.c;Middlewares\Third_Party\LwIP\src\netif\ppp\multilink.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ppp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppapi.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppcrypt.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppoe.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppol2tp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppos.c;Middlewares\Third_Party\LwIP\src\netif\ppp\upap.c;Middlewares\Third_Party\LwIP\src\netif\ppp\utils.c;Middlewares\Third_Party\LwIP\src\netif\ppp\vj.c;Middlewares\Third_Party\LwIP\src\netif\bridgeif.c;Middlewares\Third_Party\LwIP\src\netif\bridgeif_fdb.c;Middlewares\Third_Party\LwIP\src\netif\ethernet.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6_ble.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6_common.c;Middlewares\Third_Party\LwIP\src\netif\slipif.c;Middlewares\Third_Party\LwIP\src\netif\zepif.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ecp.c;Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c;Middlewares\Third_Party\LwIP\src\api\api_lib.c;Middlewares\Third_Party\LwIP\src\api\api_msg.c;Middlewares\Third_Party\LwIP\src\api\err.c;Middlewares\Third_Party\LwIP\src\api\if_api.c;Middlewares\Third_Party\LwIP\src\api\netbuf.c;Middlewares\Third_Party\LwIP\src\api\netdb.c;Middlewares\Third_Party\LwIP\src\api\netifapi.c;Middlewares\Third_Party\LwIP\src\api\sockets.c;Middlewares\Third_Party\LwIP\src\api\tcpip.c;Middlewares\Third_Party\LwIP\src\core\altcp.c;Middlewares\Third_Party\LwIP\src\core\altcp_alloc.c;Middlewares\Third_Party\LwIP\src\core\altcp_tcp.c;Middlewares\Third_Party\LwIP\src\core\def.c;Middlewares\Third_Party\LwIP\src\core\dns.c;Middlewares\Third_Party\LwIP\src\core\inet_chksum.c;Middlewares\Third_Party\LwIP\src\core\init.c;Middlewares\Third_Party\LwIP\src\core\ip.c;Middlewares\Third_Party\LwIP\src\core\mem.c;Middlewares\Third_Party\LwIP\src\core\memp.c;Middlewares\Third_Party\LwIP\src\core\netif.c;Middlewares\Third_Party\LwIP\src\core\pbuf.c;Middlewares\Third_Party\LwIP\src\core\raw.c;Middlewares\Third_Party\LwIP\src\core\stats.c;Middlewares\Third_Party\LwIP\src\core\sys.c;Middlewares\Third_Party\LwIP\src\core\tcp.c;Middlewares\Third_Party\LwIP\src\core\tcp_in.c;Middlewares\Third_Party\LwIP\src\core\tcp_out.c;Middlewares\Third_Party\LwIP\src\core\timeouts.c;Middlewares\Third_Party\LwIP\src\core\udp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\autoip.c;Middlewares\Third_Party\LwIP\src\core\ipv4\dhcp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\etharp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\icmp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\igmp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4_addr.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4_frag.c;Middlewares\Third_Party\LwIP\src\core\ipv6\dhcp6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ethip6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\icmp6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\inet6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6_addr.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6_frag.c;Middlewares\Third_Party\LwIP\src\core\ipv6\mld6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\nd6.c;Middlewares\Third_Party\LwIP\src\apps\mqtt\mqtt.c;Core\Src\system_stm32f4xx.c;;;Middlewares\Third_Party\LwIP\src\netif\ppp\auth.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ccp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap_ms.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap-md5.c;Middlewares\Third_Party\LwIP\src\netif\ppp\chap-new.c;Middlewares\Third_Party\LwIP\src\netif\ppp\demand.c;Middlewares\Third_Party\LwIP\src\netif\ppp\eap.c;Middlewares\Third_Party\LwIP\src\netif\ppp\eui64.c;Middlewares\Third_Party\LwIP\src\netif\ppp\fsm.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ipcp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ipv6cp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\lcp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\magic.c;Middlewares\Third_Party\LwIP\src\netif\ppp\mppe.c;Middlewares\Third_Party\LwIP\src\netif\ppp\multilink.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ppp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppapi.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppcrypt.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppoe.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppol2tp.c;Middlewares\Third_Party\LwIP\src\netif\ppp\pppos.c;Middlewares\Third_Party\LwIP\src\netif\ppp\upap.c;Middlewares\Third_Party\LwIP\src\netif\ppp\utils.c;Middlewares\Third_Party\LwIP\src\netif\ppp\vj.c;Middlewares\Third_Party\LwIP\src\netif\bridgeif.c;Middlewares\Third_Party\LwIP\src\netif\bridgeif_fdb.c;Middlewares\Third_Party\LwIP\src\netif\ethernet.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6_ble.c;Middlewares\Third_Party\LwIP\src\netif\lowpan6_common.c;Middlewares\Third_Party\LwIP\src\netif\slipif.c;Middlewares\Third_Party\LwIP\src\netif\zepif.c;Middlewares\Third_Party\LwIP\src\netif\ppp\ecp.c;Middlewares\Third_Party\LwIP\src\api\api_lib.c;Middlewares\Third_Party\LwIP\src\api\api_msg.c;Middlewares\Third_Party\LwIP\src\api\err.c;Middlewares\Third_Party\LwIP\src\api\if_api.c;Middlewares\Third_Party\LwIP\src\api\netbuf.c;Middlewares\Third_Party\LwIP\src\api\netdb.c;Middlewares\Third_Party\LwIP\src\api\netifapi.c;Middlewares\Third_Party\LwIP\src\api\sockets.c;Middlewares\Third_Party\LwIP\src\api\tcpip.c;Middlewares\Third_Party\LwIP\src\core\altcp.c;Middlewares\Third_Party\LwIP\src\core\altcp_alloc.c;Middlewares\Third_Party\LwIP\src\core\altcp_tcp.c;Middlewares\Third_Party\LwIP\src\core\def.c;Middlewares\Third_Party\LwIP\src\core\dns.c;Middlewares\Third_Party\LwIP\src\core\inet_chksum.c;Middlewares\Third_Party\LwIP\src\core\init.c;Middlewares\Third_Party\LwIP\src\core\ip.c;Middlewares\Third_Party\LwIP\src\core\mem.c;Middlewares\Third_Party\LwIP\src\core\memp.c;Middlewares\Third_Party\LwIP\src\core\netif.c;Middlewares\Third_Party\LwIP\src\core\pbuf.c;Middlewares\Third_Party\LwIP\src\core\raw.c;Middlewares\Third_Party\LwIP\src\core\stats.c;Middlewares\Third_Party\LwIP\src\core\sys.c;Middlewares\Third_Party\LwIP\src\core\tcp.c;Middlewares\Third_Party\LwIP\src\core\tcp_in.c;Middlewares\Third_Party\LwIP\src\core\tcp_out.c;Middlewares\Third_Party\LwIP\src\core\timeouts.c;Middlewares\Third_Party\LwIP\src\core\udp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\autoip.c;Middlewares\Third_Party\LwIP\src\core\ipv4\dhcp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\etharp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\icmp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\igmp.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4_addr.c;Middlewares\Third_Party\LwIP\src\core\ipv4\ip4_frag.c;Middlewares\Third_Party\LwIP\src\core\ipv6\dhcp6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ethip6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\icmp6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\inet6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6_addr.c;Middlewares\Third_Party\LwIP\src\core\ipv6\ip6_frag.c;Middlewares\Third_Party\LwIP\src\core\ipv6\mld6.c;Middlewares\Third_Party\LwIP\src\core\ipv6\nd6.c;Middlewares\Third_Party\LwIP\src\apps\mqtt\mqtt.c;
+HeaderPath=Middlewares\Third_Party\LwIP\src\include;Middlewares\Third_Party\LwIP\system;Middlewares\Third_Party\LwIP\src\include;Middlewares\Third_Party\LwIP\system;Drivers\STM32F4xx_HAL_Driver\Inc;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;Drivers\BSP\Components\dp83848;Middlewares\Third_Party\LwIP\src\include\netif\ppp;Drivers\CMSIS\Device\ST\STM32F4xx\Include;Middlewares\Third_Party\LwIP\src\include\lwip;Middlewares\Third_Party\LwIP\src\include\lwip\apps;Middlewares\Third_Party\LwIP\src\include\lwip\priv;Middlewares\Third_Party\LwIP\src\include\lwip\prot;Middlewares\Third_Party\LwIP\src\include\netif;Middlewares\Third_Party\LwIP\src\include\compat\posix;Middlewares\Third_Party\LwIP\src\include\compat\posix\arpa;Middlewares\Third_Party\LwIP\src\include\compat\posix\net;Middlewares\Third_Party\LwIP\src\include\compat\posix\sys;Middlewares\Third_Party\LwIP\src\include\compat\stdc;Middlewares\Third_Party\LwIP\system\arch;Drivers\CMSIS\Include;LWIP\App;LWIP\Target;Core\Inc;
+CDefines=USE_HAL_DRIVER;STM32F429xx;USE_HAL_DRIVER;USE_HAL_DRIVER;
+
+[PreviousGenFiles]
+AdvancedFolderStructure=true
+HeaderFileListSize=6
+HeaderFiles#0=..\LWIP\App\lwip.h
+HeaderFiles#1=..\LWIP\Target\lwipopts.h
+HeaderFiles#2=..\LWIP\Target\ethernetif.h
+HeaderFiles#3=..\Core\Inc\stm32f4xx_it.h
+HeaderFiles#4=..\Core\Inc\stm32f4xx_hal_conf.h
+HeaderFiles#5=..\Core\Inc\main.h
+HeaderFolderListSize=3
+HeaderPath#0=..\LWIP\App
+HeaderPath#1=..\LWIP\Target
+HeaderPath#2=..\Core\Inc
+HeaderFiles=;
+SourceFileListSize=5
+SourceFiles#0=..\LWIP\App\lwip.c
+SourceFiles#1=..\LWIP\Target\ethernetif.c
+SourceFiles#2=..\Core\Src\stm32f4xx_it.c
+SourceFiles#3=..\Core\Src\stm32f4xx_hal_msp.c
+SourceFiles#4=..\Core\Src\main.c
+SourceFolderListSize=3
+SourcePath#0=..\LWIP\App
+SourcePath#1=..\LWIP\Target
+SourcePath#2=..\Core\Src
+SourceFiles=;
+
diff --git a/.project b/.project
new file mode 100644
index 0000000..61f043e
--- /dev/null
+++ b/.project
@@ -0,0 +1,32 @@
+
+
+ yau-07b
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+
+ com.st.stm32cube.ide.mcu.MCUProjectNature
+ org.eclipse.cdt.core.cnature
+ com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature
+ com.st.stm32cube.ide.mcu.MCUCubeProjectNature
+ com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature
+ com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature
+ com.st.stm32cube.ide.mcu.MCURootProjectNature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+
+
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
new file mode 100644
index 0000000..14c3dcd
--- /dev/null
+++ b/.settings/language.settings.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs
new file mode 100644
index 0000000..75bfd87
--- /dev/null
+++ b/.settings/stm32cubeide.project.prefs
@@ -0,0 +1,3 @@
+8DF89ED150041C4CBC7CB9A9CAA90856=0B1859B3A11EA2A685DA180DE4A27465
+DC22A860405A8BF2F2C095E5B6529F12=D67572DC8315FE97C2A0CA1F27973D95
+eclipse.preferences.version=1
diff --git a/Core/Inc/main.h b/Core/Inc/main.h
new file mode 100644
index 0000000..f25b3dc
--- /dev/null
+++ b/Core/Inc/main.h
@@ -0,0 +1,68 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.h
+ * @brief : Header for main.c file.
+ * This file contains the common defines of the application.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2024 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __MAIN_H
+#define __MAIN_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_hal.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* Exported types ------------------------------------------------------------*/
+/* USER CODE BEGIN ET */
+
+/* USER CODE END ET */
+
+/* Exported constants --------------------------------------------------------*/
+/* USER CODE BEGIN EC */
+
+/* USER CODE END EC */
+
+/* Exported macro ------------------------------------------------------------*/
+/* USER CODE BEGIN EM */
+
+/* USER CODE END EM */
+
+/* Exported functions prototypes ---------------------------------------------*/
+void Error_Handler(void);
+
+/* USER CODE BEGIN EFP */
+
+/* USER CODE END EFP */
+
+/* Private defines -----------------------------------------------------------*/
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MAIN_H */
diff --git a/Core/Inc/stm32f4xx_hal_conf.h b/Core/Inc/stm32f4xx_hal_conf.h
new file mode 100644
index 0000000..d29c4ab
--- /dev/null
+++ b/Core/Inc/stm32f4xx_hal_conf.h
@@ -0,0 +1,500 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32f4xx_hal_conf_template.h
+ * @author MCD Application Team
+ * @brief HAL configuration template file.
+ * This file should be copied to the application folder and renamed
+ * to stm32f4xx_hal_conf.h.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_HAL_CONF_H
+#define __STM32F4xx_HAL_CONF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+
+/* ########################## Module Selection ############################## */
+/**
+ * @brief This is the list of modules to be used in the HAL driver
+ */
+#define HAL_MODULE_ENABLED
+
+ /* #define HAL_ADC_MODULE_ENABLED */
+/* #define HAL_CRYP_MODULE_ENABLED */
+/* #define HAL_CAN_MODULE_ENABLED */
+/* #define HAL_CRC_MODULE_ENABLED */
+/* #define HAL_CAN_LEGACY_MODULE_ENABLED */
+/* #define HAL_CRYP_MODULE_ENABLED */
+/* #define HAL_DAC_MODULE_ENABLED */
+/* #define HAL_DCMI_MODULE_ENABLED */
+/* #define HAL_DMA2D_MODULE_ENABLED */
+#define HAL_ETH_MODULE_ENABLED
+/* #define HAL_NAND_MODULE_ENABLED */
+/* #define HAL_NOR_MODULE_ENABLED */
+/* #define HAL_PCCARD_MODULE_ENABLED */
+/* #define HAL_SRAM_MODULE_ENABLED */
+/* #define HAL_SDRAM_MODULE_ENABLED */
+/* #define HAL_HASH_MODULE_ENABLED */
+/* #define HAL_I2C_MODULE_ENABLED */
+/* #define HAL_I2S_MODULE_ENABLED */
+/* #define HAL_IWDG_MODULE_ENABLED */
+/* #define HAL_LTDC_MODULE_ENABLED */
+/* #define HAL_RNG_MODULE_ENABLED */
+/* #define HAL_RTC_MODULE_ENABLED */
+/* #define HAL_SAI_MODULE_ENABLED */
+/* #define HAL_SD_MODULE_ENABLED */
+/* #define HAL_MMC_MODULE_ENABLED */
+/* #define HAL_SPI_MODULE_ENABLED */
+/* #define HAL_TIM_MODULE_ENABLED */
+/* #define HAL_UART_MODULE_ENABLED */
+/* #define HAL_USART_MODULE_ENABLED */
+/* #define HAL_IRDA_MODULE_ENABLED */
+/* #define HAL_SMARTCARD_MODULE_ENABLED */
+/* #define HAL_SMBUS_MODULE_ENABLED */
+/* #define HAL_WWDG_MODULE_ENABLED */
+/* #define HAL_PCD_MODULE_ENABLED */
+/* #define HAL_HCD_MODULE_ENABLED */
+/* #define HAL_DSI_MODULE_ENABLED */
+/* #define HAL_QSPI_MODULE_ENABLED */
+/* #define HAL_QSPI_MODULE_ENABLED */
+/* #define HAL_CEC_MODULE_ENABLED */
+/* #define HAL_FMPI2C_MODULE_ENABLED */
+/* #define HAL_FMPSMBUS_MODULE_ENABLED */
+/* #define HAL_SPDIFRX_MODULE_ENABLED */
+/* #define HAL_DFSDM_MODULE_ENABLED */
+/* #define HAL_LPTIM_MODULE_ENABLED */
+#define HAL_GPIO_MODULE_ENABLED
+#define HAL_EXTI_MODULE_ENABLED
+#define HAL_DMA_MODULE_ENABLED
+#define HAL_RCC_MODULE_ENABLED
+#define HAL_FLASH_MODULE_ENABLED
+#define HAL_PWR_MODULE_ENABLED
+#define HAL_CORTEX_MODULE_ENABLED
+
+/* ########################## HSE/HSI Values adaptation ##################### */
+/**
+ * @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSE is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSE_VALUE)
+ #define HSE_VALUE 25000000U /*!< Value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined (HSE_STARTUP_TIMEOUT)
+ #define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */
+#endif /* HSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief Internal High Speed oscillator (HSI) value.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSI is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSI_VALUE)
+ #define HSI_VALUE ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI_VALUE */
+
+/**
+ * @brief Internal Low Speed oscillator (LSI) value.
+ */
+#if !defined (LSI_VALUE)
+ #define LSI_VALUE 32000U /*!< LSI Typical Value in Hz*/
+#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
+ The real value may vary depending on the variations
+ in voltage and temperature.*/
+/**
+ * @brief External Low Speed oscillator (LSE) value.
+ */
+#if !defined (LSE_VALUE)
+ #define LSE_VALUE 32768U /*!< Value of the External Low Speed oscillator in Hz */
+#endif /* LSE_VALUE */
+
+#if !defined (LSE_STARTUP_TIMEOUT)
+ #define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */
+#endif /* LSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief External clock source for I2S peripheral
+ * This value is used by the I2S HAL module to compute the I2S clock source
+ * frequency, this source is inserted directly through I2S_CKIN pad.
+ */
+#if !defined (EXTERNAL_CLOCK_VALUE)
+ #define EXTERNAL_CLOCK_VALUE 12288000U /*!< Value of the External audio frequency in Hz*/
+#endif /* EXTERNAL_CLOCK_VALUE */
+
+/* Tip: To avoid modifying this file each time you need to use different HSE,
+ === you can define the HSE value in your toolchain compiler preprocessor. */
+
+/* ########################### System Configuration ######################### */
+/**
+ * @brief This is the HAL system configuration section
+ */
+#define VDD_VALUE 3300U /*!< Value of VDD in mv */
+#define TICK_INT_PRIORITY 15U /*!< tick interrupt priority */
+#define USE_RTOS 0U
+#define PREFETCH_ENABLE 1U
+#define INSTRUCTION_CACHE_ENABLE 1U
+#define DATA_CACHE_ENABLE 1U
+
+#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
+#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
+#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
+#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U /* CRYP register callback disabled */
+#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
+#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U /* DCMI register callback disabled */
+#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U /* DFSDM register callback disabled */
+#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U /* DMA2D register callback disabled */
+#define USE_HAL_DSI_REGISTER_CALLBACKS 0U /* DSI register callback disabled */
+#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */
+#define USE_HAL_HASH_REGISTER_CALLBACKS 0U /* HASH register callback disabled */
+#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */
+#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */
+#define USE_HAL_FMPI2C_REGISTER_CALLBACKS 0U /* FMPI2C register callback disabled */
+#define USE_HAL_FMPSMBUS_REGISTER_CALLBACKS 0U /* FMPSMBUS register callback disabled */
+#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */
+#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */
+#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U /* LPTIM register callback disabled */
+#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U /* LTDC register callback disabled */
+#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC register callback disabled */
+#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */
+#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */
+#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */
+#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */
+#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U /* QSPI register callback disabled */
+#define USE_HAL_RNG_REGISTER_CALLBACKS 0U /* RNG register callback disabled */
+#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */
+#define USE_HAL_SAI_REGISTER_CALLBACKS 0U /* SAI register callback disabled */
+#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */
+#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */
+#define USE_HAL_SDRAM_REGISTER_CALLBACKS 0U /* SDRAM register callback disabled */
+#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */
+#define USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */
+#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */
+#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
+#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
+#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */
+#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
+#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
+
+/* ########################## Assert Selection ############################## */
+/**
+ * @brief Uncomment the line below to expanse the "assert_param" macro in the
+ * HAL drivers code
+ */
+/* #define USE_FULL_ASSERT 1U */
+
+/* ################## Ethernet peripheral configuration ##################### */
+
+/* Section 1 : Ethernet peripheral configuration */
+
+/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */
+#define MAC_ADDR0 2U
+#define MAC_ADDR1 0U
+#define MAC_ADDR2 0U
+#define MAC_ADDR3 0U
+#define MAC_ADDR4 0U
+#define MAC_ADDR5 0U
+
+/* Definition of the Ethernet driver buffers size and count */
+#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */
+#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */
+#define ETH_RXBUFNB 4U /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
+#define ETH_TXBUFNB 4U /* 4 Tx buffers of size ETH_TX_BUF_SIZE */
+
+/* Section 2: PHY configuration section */
+
+/* DP83848_PHY_ADDRESS Address*/
+#define DP83848_PHY_ADDRESS 1U
+/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
+#define PHY_RESET_DELAY 0x000000FFU
+/* PHY Configuration delay */
+#define PHY_CONFIG_DELAY 0x00000FFFU
+
+#define PHY_READ_TO 0x0000FFFFU
+#define PHY_WRITE_TO 0x0000FFFFU
+
+/* Section 3: Common PHY Registers */
+
+#define PHY_BCR ((uint16_t)0x00U) /*!< Transceiver Basic Control Register */
+#define PHY_BSR ((uint16_t)0x01U) /*!< Transceiver Basic Status Register */
+
+#define PHY_RESET ((uint16_t)0x8000U) /*!< PHY Reset */
+#define PHY_LOOPBACK ((uint16_t)0x4000U) /*!< Select loop-back mode */
+#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100U) /*!< Set the full-duplex mode at 100 Mb/s */
+#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000U) /*!< Set the half-duplex mode at 100 Mb/s */
+#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100U) /*!< Set the full-duplex mode at 10 Mb/s */
+#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000U) /*!< Set the half-duplex mode at 10 Mb/s */
+#define PHY_AUTONEGOTIATION ((uint16_t)0x1000U) /*!< Enable auto-negotiation function */
+#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200U) /*!< Restart auto-negotiation function */
+#define PHY_POWERDOWN ((uint16_t)0x0800U) /*!< Select the power down mode */
+#define PHY_ISOLATE ((uint16_t)0x0400U) /*!< Isolate PHY from MII */
+
+#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020U) /*!< Auto-Negotiation process completed */
+#define PHY_LINKED_STATUS ((uint16_t)0x0004U) /*!< Valid link established */
+#define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */
+
+/* Section 4: Extended PHY Registers */
+#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */
+#define PHY_MICR ((uint16_t)0x11U) /*!< MII Interrupt Control Register */
+#define PHY_MISR ((uint16_t)0x12U) /*!< MII Interrupt Status and Misc. Control Register */
+
+#define PHY_LINK_STATUS ((uint16_t)0x0001U) /*!< PHY Link mask */
+#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */
+#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */
+
+#define PHY_MICR_INT_EN ((uint16_t)0x0002U) /*!< PHY Enable interrupts */
+#define PHY_MICR_INT_OE ((uint16_t)0x0001U) /*!< PHY Enable output interrupt events */
+
+#define PHY_MISR_LINK_INT_EN ((uint16_t)0x0020U) /*!< Enable Interrupt on change of link status */
+#define PHY_LINK_INTERRUPT ((uint16_t)0x2000U) /*!< PHY link status interrupt mask */
+
+/* ################## SPI peripheral configuration ########################## */
+
+/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
+* Activated: CRC code is present inside driver
+* Deactivated: CRC code cleaned from driver
+*/
+
+#define USE_SPI_CRC 0U
+
+/* Includes ------------------------------------------------------------------*/
+/**
+ * @brief Include module's header file
+ */
+
+#ifdef HAL_RCC_MODULE_ENABLED
+ #include "stm32f4xx_hal_rcc.h"
+#endif /* HAL_RCC_MODULE_ENABLED */
+
+#ifdef HAL_GPIO_MODULE_ENABLED
+ #include "stm32f4xx_hal_gpio.h"
+#endif /* HAL_GPIO_MODULE_ENABLED */
+
+#ifdef HAL_EXTI_MODULE_ENABLED
+ #include "stm32f4xx_hal_exti.h"
+#endif /* HAL_EXTI_MODULE_ENABLED */
+
+#ifdef HAL_DMA_MODULE_ENABLED
+ #include "stm32f4xx_hal_dma.h"
+#endif /* HAL_DMA_MODULE_ENABLED */
+
+#ifdef HAL_CORTEX_MODULE_ENABLED
+ #include "stm32f4xx_hal_cortex.h"
+#endif /* HAL_CORTEX_MODULE_ENABLED */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+ #include "stm32f4xx_hal_adc.h"
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+#ifdef HAL_CAN_MODULE_ENABLED
+ #include "stm32f4xx_hal_can.h"
+#endif /* HAL_CAN_MODULE_ENABLED */
+
+#ifdef HAL_CAN_LEGACY_MODULE_ENABLED
+ #include "stm32f4xx_hal_can_legacy.h"
+#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */
+
+#ifdef HAL_CRC_MODULE_ENABLED
+ #include "stm32f4xx_hal_crc.h"
+#endif /* HAL_CRC_MODULE_ENABLED */
+
+#ifdef HAL_CRYP_MODULE_ENABLED
+ #include "stm32f4xx_hal_cryp.h"
+#endif /* HAL_CRYP_MODULE_ENABLED */
+
+#ifdef HAL_DMA2D_MODULE_ENABLED
+ #include "stm32f4xx_hal_dma2d.h"
+#endif /* HAL_DMA2D_MODULE_ENABLED */
+
+#ifdef HAL_DAC_MODULE_ENABLED
+ #include "stm32f4xx_hal_dac.h"
+#endif /* HAL_DAC_MODULE_ENABLED */
+
+#ifdef HAL_DCMI_MODULE_ENABLED
+ #include "stm32f4xx_hal_dcmi.h"
+#endif /* HAL_DCMI_MODULE_ENABLED */
+
+#ifdef HAL_ETH_MODULE_ENABLED
+ #include "stm32f4xx_hal_eth.h"
+#endif /* HAL_ETH_MODULE_ENABLED */
+
+#ifdef HAL_FLASH_MODULE_ENABLED
+ #include "stm32f4xx_hal_flash.h"
+#endif /* HAL_FLASH_MODULE_ENABLED */
+
+#ifdef HAL_SRAM_MODULE_ENABLED
+ #include "stm32f4xx_hal_sram.h"
+#endif /* HAL_SRAM_MODULE_ENABLED */
+
+#ifdef HAL_NOR_MODULE_ENABLED
+ #include "stm32f4xx_hal_nor.h"
+#endif /* HAL_NOR_MODULE_ENABLED */
+
+#ifdef HAL_NAND_MODULE_ENABLED
+ #include "stm32f4xx_hal_nand.h"
+#endif /* HAL_NAND_MODULE_ENABLED */
+
+#ifdef HAL_PCCARD_MODULE_ENABLED
+ #include "stm32f4xx_hal_pccard.h"
+#endif /* HAL_PCCARD_MODULE_ENABLED */
+
+#ifdef HAL_SDRAM_MODULE_ENABLED
+ #include "stm32f4xx_hal_sdram.h"
+#endif /* HAL_SDRAM_MODULE_ENABLED */
+
+#ifdef HAL_HASH_MODULE_ENABLED
+ #include "stm32f4xx_hal_hash.h"
+#endif /* HAL_HASH_MODULE_ENABLED */
+
+#ifdef HAL_I2C_MODULE_ENABLED
+ #include "stm32f4xx_hal_i2c.h"
+#endif /* HAL_I2C_MODULE_ENABLED */
+
+#ifdef HAL_SMBUS_MODULE_ENABLED
+ #include "stm32f4xx_hal_smbus.h"
+#endif /* HAL_SMBUS_MODULE_ENABLED */
+
+#ifdef HAL_I2S_MODULE_ENABLED
+ #include "stm32f4xx_hal_i2s.h"
+#endif /* HAL_I2S_MODULE_ENABLED */
+
+#ifdef HAL_IWDG_MODULE_ENABLED
+ #include "stm32f4xx_hal_iwdg.h"
+#endif /* HAL_IWDG_MODULE_ENABLED */
+
+#ifdef HAL_LTDC_MODULE_ENABLED
+ #include "stm32f4xx_hal_ltdc.h"
+#endif /* HAL_LTDC_MODULE_ENABLED */
+
+#ifdef HAL_PWR_MODULE_ENABLED
+ #include "stm32f4xx_hal_pwr.h"
+#endif /* HAL_PWR_MODULE_ENABLED */
+
+#ifdef HAL_RNG_MODULE_ENABLED
+ #include "stm32f4xx_hal_rng.h"
+#endif /* HAL_RNG_MODULE_ENABLED */
+
+#ifdef HAL_RTC_MODULE_ENABLED
+ #include "stm32f4xx_hal_rtc.h"
+#endif /* HAL_RTC_MODULE_ENABLED */
+
+#ifdef HAL_SAI_MODULE_ENABLED
+ #include "stm32f4xx_hal_sai.h"
+#endif /* HAL_SAI_MODULE_ENABLED */
+
+#ifdef HAL_SD_MODULE_ENABLED
+ #include "stm32f4xx_hal_sd.h"
+#endif /* HAL_SD_MODULE_ENABLED */
+
+#ifdef HAL_SPI_MODULE_ENABLED
+ #include "stm32f4xx_hal_spi.h"
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+#ifdef HAL_TIM_MODULE_ENABLED
+ #include "stm32f4xx_hal_tim.h"
+#endif /* HAL_TIM_MODULE_ENABLED */
+
+#ifdef HAL_UART_MODULE_ENABLED
+ #include "stm32f4xx_hal_uart.h"
+#endif /* HAL_UART_MODULE_ENABLED */
+
+#ifdef HAL_USART_MODULE_ENABLED
+ #include "stm32f4xx_hal_usart.h"
+#endif /* HAL_USART_MODULE_ENABLED */
+
+#ifdef HAL_IRDA_MODULE_ENABLED
+ #include "stm32f4xx_hal_irda.h"
+#endif /* HAL_IRDA_MODULE_ENABLED */
+
+#ifdef HAL_SMARTCARD_MODULE_ENABLED
+ #include "stm32f4xx_hal_smartcard.h"
+#endif /* HAL_SMARTCARD_MODULE_ENABLED */
+
+#ifdef HAL_WWDG_MODULE_ENABLED
+ #include "stm32f4xx_hal_wwdg.h"
+#endif /* HAL_WWDG_MODULE_ENABLED */
+
+#ifdef HAL_PCD_MODULE_ENABLED
+ #include "stm32f4xx_hal_pcd.h"
+#endif /* HAL_PCD_MODULE_ENABLED */
+
+#ifdef HAL_HCD_MODULE_ENABLED
+ #include "stm32f4xx_hal_hcd.h"
+#endif /* HAL_HCD_MODULE_ENABLED */
+
+#ifdef HAL_DSI_MODULE_ENABLED
+ #include "stm32f4xx_hal_dsi.h"
+#endif /* HAL_DSI_MODULE_ENABLED */
+
+#ifdef HAL_QSPI_MODULE_ENABLED
+ #include "stm32f4xx_hal_qspi.h"
+#endif /* HAL_QSPI_MODULE_ENABLED */
+
+#ifdef HAL_CEC_MODULE_ENABLED
+ #include "stm32f4xx_hal_cec.h"
+#endif /* HAL_CEC_MODULE_ENABLED */
+
+#ifdef HAL_FMPI2C_MODULE_ENABLED
+ #include "stm32f4xx_hal_fmpi2c.h"
+#endif /* HAL_FMPI2C_MODULE_ENABLED */
+
+#ifdef HAL_FMPSMBUS_MODULE_ENABLED
+ #include "stm32f4xx_hal_fmpsmbus.h"
+#endif /* HAL_FMPSMBUS_MODULE_ENABLED */
+
+#ifdef HAL_SPDIFRX_MODULE_ENABLED
+ #include "stm32f4xx_hal_spdifrx.h"
+#endif /* HAL_SPDIFRX_MODULE_ENABLED */
+
+#ifdef HAL_DFSDM_MODULE_ENABLED
+ #include "stm32f4xx_hal_dfsdm.h"
+#endif /* HAL_DFSDM_MODULE_ENABLED */
+
+#ifdef HAL_LPTIM_MODULE_ENABLED
+ #include "stm32f4xx_hal_lptim.h"
+#endif /* HAL_LPTIM_MODULE_ENABLED */
+
+#ifdef HAL_MMC_MODULE_ENABLED
+ #include "stm32f4xx_hal_mmc.h"
+#endif /* HAL_MMC_MODULE_ENABLED */
+
+/* Exported macro ------------------------------------------------------------*/
+#ifdef USE_FULL_ASSERT
+/**
+ * @brief The assert_param macro is used for function's parameters check.
+ * @param expr If expr is false, it calls assert_failed function
+ * which reports the name of the source file and the source
+ * line number of the call that failed.
+ * If expr is true, it returns no value.
+ * @retval None
+ */
+ #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
+/* Exported functions ------------------------------------------------------- */
+ void assert_failed(uint8_t* file, uint32_t line);
+#else
+ #define assert_param(expr) ((void)0U)
+#endif /* USE_FULL_ASSERT */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4xx_HAL_CONF_H */
diff --git a/Core/Inc/stm32f4xx_it.h b/Core/Inc/stm32f4xx_it.h
new file mode 100644
index 0000000..9716374
--- /dev/null
+++ b/Core/Inc/stm32f4xx_it.h
@@ -0,0 +1,66 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32f4xx_it.h
+ * @brief This file contains the headers of the interrupt handlers.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2024 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_IT_H
+#define __STM32F4xx_IT_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* Exported types ------------------------------------------------------------*/
+/* USER CODE BEGIN ET */
+
+/* USER CODE END ET */
+
+/* Exported constants --------------------------------------------------------*/
+/* USER CODE BEGIN EC */
+
+/* USER CODE END EC */
+
+/* Exported macro ------------------------------------------------------------*/
+/* USER CODE BEGIN EM */
+
+/* USER CODE END EM */
+
+/* Exported functions prototypes ---------------------------------------------*/
+void NMI_Handler(void);
+void HardFault_Handler(void);
+void MemManage_Handler(void);
+void BusFault_Handler(void);
+void UsageFault_Handler(void);
+void SVC_Handler(void);
+void DebugMon_Handler(void);
+void PendSV_Handler(void);
+void SysTick_Handler(void);
+/* USER CODE BEGIN EFP */
+
+/* USER CODE END EFP */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4xx_IT_H */
diff --git a/Core/Src/main.c b/Core/Src/main.c
new file mode 100644
index 0000000..d2bfa6e
--- /dev/null
+++ b/Core/Src/main.c
@@ -0,0 +1,198 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2024 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+#include "lwip.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN PTD */
+
+/* USER CODE END PTD */
+
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN PD */
+/* USER CODE END PD */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN PM */
+
+/* USER CODE END PM */
+
+/* Private variables ---------------------------------------------------------*/
+
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+/* USER CODE BEGIN PFP */
+
+/* USER CODE END PFP */
+
+/* Private user code ---------------------------------------------------------*/
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+/**
+ * @brief The application entry point.
+ * @retval int
+ */
+int main(void)
+{
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_LWIP_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+
+ while (1)
+ {
+ MX_LWIP_Process();
+ }
+ /* USER CODE END 3 */
+}
+
+/**
+ * @brief System Clock Configuration
+ * @retval None
+ */
+void SystemClock_Config(void)
+{
+ RCC_OscInitTypeDef RCC_OscInitStruct = {0};
+ RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
+
+ /** Configure the main internal regulator output voltage
+ */
+ __HAL_RCC_PWR_CLK_ENABLE();
+ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
+
+ /** Initializes the RCC Oscillators according to the specified parameters
+ * in the RCC_OscInitTypeDef structure.
+ */
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;
+ RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
+ RCC_OscInitStruct.PLL.PLLM = 8;
+ RCC_OscInitStruct.PLL.PLLN = 100;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 4;
+ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Initializes the CPU, AHB and APB buses clocks
+ */
+ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
+ |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin : PC14 */
+ GPIO_InitStruct.Pin = GPIO_PIN_14;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/**
+ * @brief This function is executed in case of error occurrence.
+ * @retval None
+ */
+void Error_Handler(void)
+{
+ /* USER CODE BEGIN Error_Handler_Debug */
+ /* User can add his own implementation to report the HAL error return state */
+ __disable_irq();
+ while (1)
+ {
+ }
+ /* USER CODE END Error_Handler_Debug */
+}
+
+#ifdef USE_FULL_ASSERT
+/**
+ * @brief Reports the name of the source file and the source line number
+ * where the assert_param error has occurred.
+ * @param file: pointer to the source file name
+ * @param line: assert_param error line source number
+ * @retval None
+ */
+void assert_failed(uint8_t *file, uint32_t line)
+{
+ /* USER CODE BEGIN 6 */
+ /* User can add his own implementation to report the file name and line number,
+ ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
+ /* USER CODE END 6 */
+}
+#endif /* USE_FULL_ASSERT */
diff --git a/Core/Src/stm32f4xx_hal_msp.c b/Core/Src/stm32f4xx_hal_msp.c
new file mode 100644
index 0000000..dca326c
--- /dev/null
+++ b/Core/Src/stm32f4xx_hal_msp.c
@@ -0,0 +1,81 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32f4xx_hal_msp.c
+ * @brief This file provides code for the MSP Initialization
+ * and de-Initialization codes.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2024 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN TD */
+
+/* USER CODE END TD */
+
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN Define */
+
+/* USER CODE END Define */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN Macro */
+
+/* USER CODE END Macro */
+
+/* Private variables ---------------------------------------------------------*/
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+/* USER CODE BEGIN PFP */
+
+/* USER CODE END PFP */
+
+/* External functions --------------------------------------------------------*/
+/* USER CODE BEGIN ExternalFunctions */
+
+/* USER CODE END ExternalFunctions */
+
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+/**
+ * Initializes the Global MSP.
+ */
+void HAL_MspInit(void)
+{
+ /* USER CODE BEGIN MspInit 0 */
+
+ /* USER CODE END MspInit 0 */
+
+ __HAL_RCC_SYSCFG_CLK_ENABLE();
+ __HAL_RCC_PWR_CLK_ENABLE();
+
+ /* System interrupt init*/
+
+ /* USER CODE BEGIN MspInit 1 */
+
+ /* USER CODE END MspInit 1 */
+}
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
diff --git a/Core/Src/stm32f4xx_it.c b/Core/Src/stm32f4xx_it.c
new file mode 100644
index 0000000..9959ced
--- /dev/null
+++ b/Core/Src/stm32f4xx_it.c
@@ -0,0 +1,203 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32f4xx_it.c
+ * @brief Interrupt Service Routines.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2024 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+#include "stm32f4xx_it.h"
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN TD */
+
+/* USER CODE END TD */
+
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN PD */
+
+/* USER CODE END PD */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN PM */
+
+/* USER CODE END PM */
+
+/* Private variables ---------------------------------------------------------*/
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+/* USER CODE BEGIN PFP */
+
+/* USER CODE END PFP */
+
+/* Private user code ---------------------------------------------------------*/
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+/* External variables --------------------------------------------------------*/
+
+/* USER CODE BEGIN EV */
+
+/* USER CODE END EV */
+
+/******************************************************************************/
+/* Cortex-M4 Processor Interruption and Exception Handlers */
+/******************************************************************************/
+/**
+ * @brief This function handles Non maskable interrupt.
+ */
+void NMI_Handler(void)
+{
+ /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
+
+ /* USER CODE END NonMaskableInt_IRQn 0 */
+ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
+ while (1)
+ {
+ }
+ /* USER CODE END NonMaskableInt_IRQn 1 */
+}
+
+/**
+ * @brief This function handles Hard fault interrupt.
+ */
+void HardFault_Handler(void)
+{
+ /* USER CODE BEGIN HardFault_IRQn 0 */
+
+ /* USER CODE END HardFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_HardFault_IRQn 0 */
+ /* USER CODE END W1_HardFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Memory management fault.
+ */
+void MemManage_Handler(void)
+{
+ /* USER CODE BEGIN MemoryManagement_IRQn 0 */
+
+ /* USER CODE END MemoryManagement_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
+ /* USER CODE END W1_MemoryManagement_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Pre-fetch fault, memory access fault.
+ */
+void BusFault_Handler(void)
+{
+ /* USER CODE BEGIN BusFault_IRQn 0 */
+
+ /* USER CODE END BusFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_BusFault_IRQn 0 */
+ /* USER CODE END W1_BusFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Undefined instruction or illegal state.
+ */
+void UsageFault_Handler(void)
+{
+ /* USER CODE BEGIN UsageFault_IRQn 0 */
+
+ /* USER CODE END UsageFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
+ /* USER CODE END W1_UsageFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles System service call via SWI instruction.
+ */
+void SVC_Handler(void)
+{
+ /* USER CODE BEGIN SVCall_IRQn 0 */
+
+ /* USER CODE END SVCall_IRQn 0 */
+ /* USER CODE BEGIN SVCall_IRQn 1 */
+
+ /* USER CODE END SVCall_IRQn 1 */
+}
+
+/**
+ * @brief This function handles Debug monitor.
+ */
+void DebugMon_Handler(void)
+{
+ /* USER CODE BEGIN DebugMonitor_IRQn 0 */
+
+ /* USER CODE END DebugMonitor_IRQn 0 */
+ /* USER CODE BEGIN DebugMonitor_IRQn 1 */
+
+ /* USER CODE END DebugMonitor_IRQn 1 */
+}
+
+/**
+ * @brief This function handles Pendable request for system service.
+ */
+void PendSV_Handler(void)
+{
+ /* USER CODE BEGIN PendSV_IRQn 0 */
+
+ /* USER CODE END PendSV_IRQn 0 */
+ /* USER CODE BEGIN PendSV_IRQn 1 */
+
+ /* USER CODE END PendSV_IRQn 1 */
+}
+
+/**
+ * @brief This function handles System tick timer.
+ */
+void SysTick_Handler(void)
+{
+ /* USER CODE BEGIN SysTick_IRQn 0 */
+
+ /* USER CODE END SysTick_IRQn 0 */
+ HAL_IncTick();
+ /* USER CODE BEGIN SysTick_IRQn 1 */
+
+ /* USER CODE END SysTick_IRQn 1 */
+}
+
+/******************************************************************************/
+/* STM32F4xx Peripheral Interrupt Handlers */
+/* Add here the Interrupt Handlers for the used peripherals. */
+/* For the available peripheral interrupt handler names, */
+/* please refer to the startup file (startup_stm32f4xx.s). */
+/******************************************************************************/
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
diff --git a/Core/Src/system_stm32f4xx.c b/Core/Src/system_stm32f4xx.c
new file mode 100644
index 0000000..3bd40f7
--- /dev/null
+++ b/Core/Src/system_stm32f4xx.c
@@ -0,0 +1,747 @@
+/**
+ ******************************************************************************
+ * @file system_stm32f4xx.c
+ * @author MCD Application Team
+ * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File.
+ *
+ * This file provides two functions and one global variable to be called from
+ * user application:
+ * - SystemInit(): This function is called at startup just after reset and
+ * before branch to main program. This call is made inside
+ * the "startup_stm32f4xx.s" file.
+ *
+ * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
+ * by the user application to setup the SysTick
+ * timer or configure other parameters.
+ *
+ * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
+ * be called whenever the core clock is changed
+ * during program execution.
+ *
+ *
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/** @addtogroup CMSIS
+ * @{
+ */
+
+/** @addtogroup stm32f4xx_system
+ * @{
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Includes
+ * @{
+ */
+
+
+#include "stm32f4xx.h"
+
+#if !defined (HSE_VALUE)
+ #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined (HSI_VALUE)
+ #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI_VALUE */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_TypesDefinitions
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Defines
+ * @{
+ */
+
+/************************* Miscellaneous Configuration ************************/
+/*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */
+#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\
+ || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx)
+/* #define DATA_IN_ExtSRAM */
+#endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx ||\
+ STM32F412Zx || STM32F412Vx */
+
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
+/* #define DATA_IN_ExtSDRAM */
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||\
+ STM32F479xx */
+
+/* Note: Following vector table addresses must be defined in line with linker
+ configuration. */
+/*!< Uncomment the following line if you need to relocate the vector table
+ anywhere in Flash or Sram, else the vector table is kept at the automatic
+ remap of boot address selected */
+/* #define USER_VECT_TAB_ADDRESS */
+
+#if defined(USER_VECT_TAB_ADDRESS)
+/*!< Uncomment the following line if you need to relocate your vector Table
+ in Sram else user remap will be done in Flash. */
+/* #define VECT_TAB_SRAM */
+#if defined(VECT_TAB_SRAM)
+#define VECT_TAB_BASE_ADDRESS SRAM_BASE /*!< Vector Table base address field.
+ This value must be a multiple of 0x200. */
+#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
+ This value must be a multiple of 0x200. */
+#else
+#define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field.
+ This value must be a multiple of 0x200. */
+#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
+ This value must be a multiple of 0x200. */
+#endif /* VECT_TAB_SRAM */
+#endif /* USER_VECT_TAB_ADDRESS */
+/******************************************************************************/
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Macros
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Variables
+ * @{
+ */
+ /* This variable is updated in three ways:
+ 1) by calling CMSIS function SystemCoreClockUpdate()
+ 2) by calling HAL API function HAL_RCC_GetHCLKFreq()
+ 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
+ Note: If you use this function to configure the system clock; then there
+ is no need to call the 2 first functions listed above, since SystemCoreClock
+ variable is updated automatically.
+ */
+uint32_t SystemCoreClock = 16000000;
+const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
+const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_FunctionPrototypes
+ * @{
+ */
+
+#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
+ static void SystemInit_ExtMemCtl(void);
+#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Functions
+ * @{
+ */
+
+/**
+ * @brief Setup the microcontroller system
+ * Initialize the FPU setting, vector table location and External memory
+ * configuration.
+ * @param None
+ * @retval None
+ */
+void SystemInit(void)
+{
+ /* FPU settings ------------------------------------------------------------*/
+ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
+ SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
+ #endif
+
+#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
+ SystemInit_ExtMemCtl();
+#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
+
+ /* Configure the Vector Table location -------------------------------------*/
+#if defined(USER_VECT_TAB_ADDRESS)
+ SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
+#endif /* USER_VECT_TAB_ADDRESS */
+}
+
+/**
+ * @brief Update SystemCoreClock variable according to Clock Register Values.
+ * The SystemCoreClock variable contains the core clock (HCLK), it can
+ * be used by the user application to setup the SysTick timer or configure
+ * other parameters.
+ *
+ * @note Each time the core clock (HCLK) changes, this function must be called
+ * to update SystemCoreClock variable value. Otherwise, any configuration
+ * based on this variable will be incorrect.
+ *
+ * @note - The system frequency computed by this function is not the real
+ * frequency in the chip. It is calculated based on the predefined
+ * constant and the selected clock source:
+ *
+ * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*)
+ *
+ * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**)
+ *
+ * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**)
+ * or HSI_VALUE(*) multiplied/divided by the PLL factors.
+ *
+ * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value
+ * 16 MHz) but the real value may vary depending on the variations
+ * in voltage and temperature.
+ *
+ * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value
+ * depends on the application requirements), user has to ensure that HSE_VALUE
+ * is same as the real frequency of the crystal used. Otherwise, this function
+ * may have wrong result.
+ *
+ * - The result of this function could be not correct when using fractional
+ * value for HSE crystal.
+ *
+ * @param None
+ * @retval None
+ */
+void SystemCoreClockUpdate(void)
+{
+ uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
+
+ /* Get SYSCLK source -------------------------------------------------------*/
+ tmp = RCC->CFGR & RCC_CFGR_SWS;
+
+ switch (tmp)
+ {
+ case 0x00: /* HSI used as system clock source */
+ SystemCoreClock = HSI_VALUE;
+ break;
+ case 0x04: /* HSE used as system clock source */
+ SystemCoreClock = HSE_VALUE;
+ break;
+ case 0x08: /* PLL used as system clock source */
+
+ /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
+ SYSCLK = PLL_VCO / PLL_P
+ */
+ pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
+ pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
+
+ if (pllsource != 0)
+ {
+ /* HSE used as PLL clock source */
+ pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
+ }
+ else
+ {
+ /* HSI used as PLL clock source */
+ pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
+ }
+
+ pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
+ SystemCoreClock = pllvco/pllp;
+ break;
+ default:
+ SystemCoreClock = HSI_VALUE;
+ break;
+ }
+ /* Compute HCLK frequency --------------------------------------------------*/
+ /* Get HCLK prescaler */
+ tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
+ /* HCLK frequency */
+ SystemCoreClock >>= tmp;
+}
+
+#if defined (DATA_IN_ExtSRAM) && defined (DATA_IN_ExtSDRAM)
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F469xx) || defined(STM32F479xx)
+/**
+ * @brief Setup the external memory controller.
+ * Called in startup_stm32f4xx.s before jump to main.
+ * This function configures the external memories (SRAM/SDRAM)
+ * This SRAM/SDRAM will be used as program data memory (including heap and stack).
+ * @param None
+ * @retval None
+ */
+void SystemInit_ExtMemCtl(void)
+{
+ __IO uint32_t tmp = 0x00;
+
+ register uint32_t tmpreg = 0, timeout = 0xFFFF;
+ register __IO uint32_t index;
+
+ /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface clock */
+ RCC->AHB1ENR |= 0x000001F8;
+
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN);
+
+ /* Connect PDx pins to FMC Alternate function */
+ GPIOD->AFR[0] = 0x00CCC0CC;
+ GPIOD->AFR[1] = 0xCCCCCCCC;
+ /* Configure PDx pins in Alternate function mode */
+ GPIOD->MODER = 0xAAAA0A8A;
+ /* Configure PDx pins speed to 100 MHz */
+ GPIOD->OSPEEDR = 0xFFFF0FCF;
+ /* Configure PDx pins Output type to push-pull */
+ GPIOD->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PDx pins */
+ GPIOD->PUPDR = 0x00000000;
+
+ /* Connect PEx pins to FMC Alternate function */
+ GPIOE->AFR[0] = 0xC00CC0CC;
+ GPIOE->AFR[1] = 0xCCCCCCCC;
+ /* Configure PEx pins in Alternate function mode */
+ GPIOE->MODER = 0xAAAA828A;
+ /* Configure PEx pins speed to 100 MHz */
+ GPIOE->OSPEEDR = 0xFFFFC3CF;
+ /* Configure PEx pins Output type to push-pull */
+ GPIOE->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PEx pins */
+ GPIOE->PUPDR = 0x00000000;
+
+ /* Connect PFx pins to FMC Alternate function */
+ GPIOF->AFR[0] = 0xCCCCCCCC;
+ GPIOF->AFR[1] = 0xCCCCCCCC;
+ /* Configure PFx pins in Alternate function mode */
+ GPIOF->MODER = 0xAA800AAA;
+ /* Configure PFx pins speed to 50 MHz */
+ GPIOF->OSPEEDR = 0xAA800AAA;
+ /* Configure PFx pins Output type to push-pull */
+ GPIOF->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PFx pins */
+ GPIOF->PUPDR = 0x00000000;
+
+ /* Connect PGx pins to FMC Alternate function */
+ GPIOG->AFR[0] = 0xCCCCCCCC;
+ GPIOG->AFR[1] = 0xCCCCCCCC;
+ /* Configure PGx pins in Alternate function mode */
+ GPIOG->MODER = 0xAAAAAAAA;
+ /* Configure PGx pins speed to 50 MHz */
+ GPIOG->OSPEEDR = 0xAAAAAAAA;
+ /* Configure PGx pins Output type to push-pull */
+ GPIOG->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PGx pins */
+ GPIOG->PUPDR = 0x00000000;
+
+ /* Connect PHx pins to FMC Alternate function */
+ GPIOH->AFR[0] = 0x00C0CC00;
+ GPIOH->AFR[1] = 0xCCCCCCCC;
+ /* Configure PHx pins in Alternate function mode */
+ GPIOH->MODER = 0xAAAA08A0;
+ /* Configure PHx pins speed to 50 MHz */
+ GPIOH->OSPEEDR = 0xAAAA08A0;
+ /* Configure PHx pins Output type to push-pull */
+ GPIOH->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PHx pins */
+ GPIOH->PUPDR = 0x00000000;
+
+ /* Connect PIx pins to FMC Alternate function */
+ GPIOI->AFR[0] = 0xCCCCCCCC;
+ GPIOI->AFR[1] = 0x00000CC0;
+ /* Configure PIx pins in Alternate function mode */
+ GPIOI->MODER = 0x0028AAAA;
+ /* Configure PIx pins speed to 50 MHz */
+ GPIOI->OSPEEDR = 0x0028AAAA;
+ /* Configure PIx pins Output type to push-pull */
+ GPIOI->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PIx pins */
+ GPIOI->PUPDR = 0x00000000;
+
+/*-- FMC Configuration -------------------------------------------------------*/
+ /* Enable the FMC interface clock */
+ RCC->AHB3ENR |= 0x00000001;
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);
+
+ FMC_Bank5_6->SDCR[0] = 0x000019E4;
+ FMC_Bank5_6->SDTR[0] = 0x01115351;
+
+ /* SDRAM initialization sequence */
+ /* Clock enable command */
+ FMC_Bank5_6->SDCMR = 0x00000011;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Delay */
+ for (index = 0; index<1000; index++);
+
+ /* PALL command */
+ FMC_Bank5_6->SDCMR = 0x00000012;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Auto refresh command */
+ FMC_Bank5_6->SDCMR = 0x00000073;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* MRD register program */
+ FMC_Bank5_6->SDCMR = 0x00046014;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Set refresh count */
+ tmpreg = FMC_Bank5_6->SDRTR;
+ FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1));
+
+ /* Disable write protection */
+ tmpreg = FMC_Bank5_6->SDCR[0];
+ FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF);
+
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
+ /* Configure and enable Bank1_SRAM2 */
+ FMC_Bank1->BTCR[2] = 0x00001011;
+ FMC_Bank1->BTCR[3] = 0x00000201;
+ FMC_Bank1E->BWTR[2] = 0x0fffffff;
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
+#if defined(STM32F469xx) || defined(STM32F479xx)
+ /* Configure and enable Bank1_SRAM2 */
+ FMC_Bank1->BTCR[2] = 0x00001091;
+ FMC_Bank1->BTCR[3] = 0x00110212;
+ FMC_Bank1E->BWTR[2] = 0x0fffffff;
+#endif /* STM32F469xx || STM32F479xx */
+
+ (void)(tmp);
+}
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
+#elif defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
+/**
+ * @brief Setup the external memory controller.
+ * Called in startup_stm32f4xx.s before jump to main.
+ * This function configures the external memories (SRAM/SDRAM)
+ * This SRAM/SDRAM will be used as program data memory (including heap and stack).
+ * @param None
+ * @retval None
+ */
+void SystemInit_ExtMemCtl(void)
+{
+ __IO uint32_t tmp = 0x00;
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
+#if defined (DATA_IN_ExtSDRAM)
+ register uint32_t tmpreg = 0, timeout = 0xFFFF;
+ register __IO uint32_t index;
+
+#if defined(STM32F446xx)
+ /* Enable GPIOA, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG interface
+ clock */
+ RCC->AHB1ENR |= 0x0000007D;
+#else
+ /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface
+ clock */
+ RCC->AHB1ENR |= 0x000001F8;
+#endif /* STM32F446xx */
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN);
+
+#if defined(STM32F446xx)
+ /* Connect PAx pins to FMC Alternate function */
+ GPIOA->AFR[0] |= 0xC0000000;
+ GPIOA->AFR[1] |= 0x00000000;
+ /* Configure PDx pins in Alternate function mode */
+ GPIOA->MODER |= 0x00008000;
+ /* Configure PDx pins speed to 50 MHz */
+ GPIOA->OSPEEDR |= 0x00008000;
+ /* Configure PDx pins Output type to push-pull */
+ GPIOA->OTYPER |= 0x00000000;
+ /* No pull-up, pull-down for PDx pins */
+ GPIOA->PUPDR |= 0x00000000;
+
+ /* Connect PCx pins to FMC Alternate function */
+ GPIOC->AFR[0] |= 0x00CC0000;
+ GPIOC->AFR[1] |= 0x00000000;
+ /* Configure PDx pins in Alternate function mode */
+ GPIOC->MODER |= 0x00000A00;
+ /* Configure PDx pins speed to 50 MHz */
+ GPIOC->OSPEEDR |= 0x00000A00;
+ /* Configure PDx pins Output type to push-pull */
+ GPIOC->OTYPER |= 0x00000000;
+ /* No pull-up, pull-down for PDx pins */
+ GPIOC->PUPDR |= 0x00000000;
+#endif /* STM32F446xx */
+
+ /* Connect PDx pins to FMC Alternate function */
+ GPIOD->AFR[0] = 0x000000CC;
+ GPIOD->AFR[1] = 0xCC000CCC;
+ /* Configure PDx pins in Alternate function mode */
+ GPIOD->MODER = 0xA02A000A;
+ /* Configure PDx pins speed to 50 MHz */
+ GPIOD->OSPEEDR = 0xA02A000A;
+ /* Configure PDx pins Output type to push-pull */
+ GPIOD->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PDx pins */
+ GPIOD->PUPDR = 0x00000000;
+
+ /* Connect PEx pins to FMC Alternate function */
+ GPIOE->AFR[0] = 0xC00000CC;
+ GPIOE->AFR[1] = 0xCCCCCCCC;
+ /* Configure PEx pins in Alternate function mode */
+ GPIOE->MODER = 0xAAAA800A;
+ /* Configure PEx pins speed to 50 MHz */
+ GPIOE->OSPEEDR = 0xAAAA800A;
+ /* Configure PEx pins Output type to push-pull */
+ GPIOE->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PEx pins */
+ GPIOE->PUPDR = 0x00000000;
+
+ /* Connect PFx pins to FMC Alternate function */
+ GPIOF->AFR[0] = 0xCCCCCCCC;
+ GPIOF->AFR[1] = 0xCCCCCCCC;
+ /* Configure PFx pins in Alternate function mode */
+ GPIOF->MODER = 0xAA800AAA;
+ /* Configure PFx pins speed to 50 MHz */
+ GPIOF->OSPEEDR = 0xAA800AAA;
+ /* Configure PFx pins Output type to push-pull */
+ GPIOF->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PFx pins */
+ GPIOF->PUPDR = 0x00000000;
+
+ /* Connect PGx pins to FMC Alternate function */
+ GPIOG->AFR[0] = 0xCCCCCCCC;
+ GPIOG->AFR[1] = 0xCCCCCCCC;
+ /* Configure PGx pins in Alternate function mode */
+ GPIOG->MODER = 0xAAAAAAAA;
+ /* Configure PGx pins speed to 50 MHz */
+ GPIOG->OSPEEDR = 0xAAAAAAAA;
+ /* Configure PGx pins Output type to push-pull */
+ GPIOG->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PGx pins */
+ GPIOG->PUPDR = 0x00000000;
+
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F469xx) || defined(STM32F479xx)
+ /* Connect PHx pins to FMC Alternate function */
+ GPIOH->AFR[0] = 0x00C0CC00;
+ GPIOH->AFR[1] = 0xCCCCCCCC;
+ /* Configure PHx pins in Alternate function mode */
+ GPIOH->MODER = 0xAAAA08A0;
+ /* Configure PHx pins speed to 50 MHz */
+ GPIOH->OSPEEDR = 0xAAAA08A0;
+ /* Configure PHx pins Output type to push-pull */
+ GPIOH->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PHx pins */
+ GPIOH->PUPDR = 0x00000000;
+
+ /* Connect PIx pins to FMC Alternate function */
+ GPIOI->AFR[0] = 0xCCCCCCCC;
+ GPIOI->AFR[1] = 0x00000CC0;
+ /* Configure PIx pins in Alternate function mode */
+ GPIOI->MODER = 0x0028AAAA;
+ /* Configure PIx pins speed to 50 MHz */
+ GPIOI->OSPEEDR = 0x0028AAAA;
+ /* Configure PIx pins Output type to push-pull */
+ GPIOI->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PIx pins */
+ GPIOI->PUPDR = 0x00000000;
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
+
+/*-- FMC Configuration -------------------------------------------------------*/
+ /* Enable the FMC interface clock */
+ RCC->AHB3ENR |= 0x00000001;
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);
+
+ /* Configure and enable SDRAM bank1 */
+#if defined(STM32F446xx)
+ FMC_Bank5_6->SDCR[0] = 0x00001954;
+#else
+ FMC_Bank5_6->SDCR[0] = 0x000019E4;
+#endif /* STM32F446xx */
+ FMC_Bank5_6->SDTR[0] = 0x01115351;
+
+ /* SDRAM initialization sequence */
+ /* Clock enable command */
+ FMC_Bank5_6->SDCMR = 0x00000011;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Delay */
+ for (index = 0; index<1000; index++);
+
+ /* PALL command */
+ FMC_Bank5_6->SDCMR = 0x00000012;
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Auto refresh command */
+#if defined(STM32F446xx)
+ FMC_Bank5_6->SDCMR = 0x000000F3;
+#else
+ FMC_Bank5_6->SDCMR = 0x00000073;
+#endif /* STM32F446xx */
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* MRD register program */
+#if defined(STM32F446xx)
+ FMC_Bank5_6->SDCMR = 0x00044014;
+#else
+ FMC_Bank5_6->SDCMR = 0x00046014;
+#endif /* STM32F446xx */
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ timeout = 0xFFFF;
+ while((tmpreg != 0) && (timeout-- > 0))
+ {
+ tmpreg = FMC_Bank5_6->SDSR & 0x00000020;
+ }
+
+ /* Set refresh count */
+ tmpreg = FMC_Bank5_6->SDRTR;
+#if defined(STM32F446xx)
+ FMC_Bank5_6->SDRTR = (tmpreg | (0x0000050C<<1));
+#else
+ FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1));
+#endif /* STM32F446xx */
+
+ /* Disable write protection */
+ tmpreg = FMC_Bank5_6->SDCR[0];
+ FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF);
+#endif /* DATA_IN_ExtSDRAM */
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
+
+#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\
+ || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
+ || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx)
+
+#if defined(DATA_IN_ExtSRAM)
+/*-- GPIOs Configuration -----------------------------------------------------*/
+ /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */
+ RCC->AHB1ENR |= 0x00000078;
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIODEN);
+
+ /* Connect PDx pins to FMC Alternate function */
+ GPIOD->AFR[0] = 0x00CCC0CC;
+ GPIOD->AFR[1] = 0xCCCCCCCC;
+ /* Configure PDx pins in Alternate function mode */
+ GPIOD->MODER = 0xAAAA0A8A;
+ /* Configure PDx pins speed to 100 MHz */
+ GPIOD->OSPEEDR = 0xFFFF0FCF;
+ /* Configure PDx pins Output type to push-pull */
+ GPIOD->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PDx pins */
+ GPIOD->PUPDR = 0x00000000;
+
+ /* Connect PEx pins to FMC Alternate function */
+ GPIOE->AFR[0] = 0xC00CC0CC;
+ GPIOE->AFR[1] = 0xCCCCCCCC;
+ /* Configure PEx pins in Alternate function mode */
+ GPIOE->MODER = 0xAAAA828A;
+ /* Configure PEx pins speed to 100 MHz */
+ GPIOE->OSPEEDR = 0xFFFFC3CF;
+ /* Configure PEx pins Output type to push-pull */
+ GPIOE->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PEx pins */
+ GPIOE->PUPDR = 0x00000000;
+
+ /* Connect PFx pins to FMC Alternate function */
+ GPIOF->AFR[0] = 0x00CCCCCC;
+ GPIOF->AFR[1] = 0xCCCC0000;
+ /* Configure PFx pins in Alternate function mode */
+ GPIOF->MODER = 0xAA000AAA;
+ /* Configure PFx pins speed to 100 MHz */
+ GPIOF->OSPEEDR = 0xFF000FFF;
+ /* Configure PFx pins Output type to push-pull */
+ GPIOF->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PFx pins */
+ GPIOF->PUPDR = 0x00000000;
+
+ /* Connect PGx pins to FMC Alternate function */
+ GPIOG->AFR[0] = 0x00CCCCCC;
+ GPIOG->AFR[1] = 0x000000C0;
+ /* Configure PGx pins in Alternate function mode */
+ GPIOG->MODER = 0x00085AAA;
+ /* Configure PGx pins speed to 100 MHz */
+ GPIOG->OSPEEDR = 0x000CAFFF;
+ /* Configure PGx pins Output type to push-pull */
+ GPIOG->OTYPER = 0x00000000;
+ /* No pull-up, pull-down for PGx pins */
+ GPIOG->PUPDR = 0x00000000;
+
+/*-- FMC/FSMC Configuration --------------------------------------------------*/
+ /* Enable the FMC/FSMC interface clock */
+ RCC->AHB3ENR |= 0x00000001;
+
+#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);
+ /* Configure and enable Bank1_SRAM2 */
+ FMC_Bank1->BTCR[2] = 0x00001011;
+ FMC_Bank1->BTCR[3] = 0x00000201;
+ FMC_Bank1E->BWTR[2] = 0x0fffffff;
+#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
+#if defined(STM32F469xx) || defined(STM32F479xx)
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN);
+ /* Configure and enable Bank1_SRAM2 */
+ FMC_Bank1->BTCR[2] = 0x00001091;
+ FMC_Bank1->BTCR[3] = 0x00110212;
+ FMC_Bank1E->BWTR[2] = 0x0fffffff;
+#endif /* STM32F469xx || STM32F479xx */
+#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx)|| defined(STM32F417xx)\
+ || defined(STM32F412Zx) || defined(STM32F412Vx)
+ /* Delay after an RCC peripheral clock enabling */
+ tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FSMCEN);
+ /* Configure and enable Bank1_SRAM2 */
+ FSMC_Bank1->BTCR[2] = 0x00001011;
+ FSMC_Bank1->BTCR[3] = 0x00000201;
+ FSMC_Bank1E->BWTR[2] = 0x0FFFFFFF;
+#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx */
+
+#endif /* DATA_IN_ExtSRAM */
+#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx ||\
+ STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx || STM32F412Zx || STM32F412Vx */
+ (void)(tmp);
+}
+#endif /* DATA_IN_ExtSRAM && DATA_IN_ExtSDRAM */
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
diff --git a/Core/Startup/startup_stm32f429zitx.s b/Core/Startup/startup_stm32f429zitx.s
new file mode 100644
index 0000000..2ae1e27
--- /dev/null
+++ b/Core/Startup/startup_stm32f429zitx.s
@@ -0,0 +1,548 @@
+/**
+ ******************************************************************************
+ * @file startup_stm32f429zitx.s
+ * @author Auto-generated by STM32CubeIDE
+ * @brief STM32F429ZITx device vector table for GCC toolchain.
+ * This module performs:
+ * - Set the initial SP
+ * - Set the initial PC == Reset_Handler,
+ * - Set the vector table entries with the exceptions ISR address
+ * - Branches to main in the C library (which eventually
+ * calls main()).
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) ${year} STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+.syntax unified
+.cpu cortex-m4
+.fpu softvfp
+.thumb
+
+.global g_pfnVectors
+.global Default_Handler
+
+/* start address for the initialization values of the .data section.
+defined in linker script */
+.word _sidata
+/* start address for the .data section. defined in linker script */
+.word _sdata
+/* end address for the .data section. defined in linker script */
+.word _edata
+/* start address for the .bss section. defined in linker script */
+.word _sbss
+/* end address for the .bss section. defined in linker script */
+.word _ebss
+
+/**
+ * @brief This is the code that gets called when the processor first
+ * starts execution following a reset event. Only the absolutely
+ * necessary set is performed, after which the application
+ * supplied main() routine is called.
+ * @param None
+ * @retval : None
+*/
+
+ .section .text.Reset_Handler
+ .weak Reset_Handler
+ .type Reset_Handler, %function
+Reset_Handler:
+ ldr r0, =_estack
+ mov sp, r0 /* set stack pointer */
+/* Call the clock system initialization function.*/
+ bl SystemInit
+
+/* Copy the data segment initializers from flash to SRAM */
+ ldr r0, =_sdata
+ ldr r1, =_edata
+ ldr r2, =_sidata
+ movs r3, #0
+ b LoopCopyDataInit
+
+CopyDataInit:
+ ldr r4, [r2, r3]
+ str r4, [r0, r3]
+ adds r3, r3, #4
+
+LoopCopyDataInit:
+ adds r4, r0, r3
+ cmp r4, r1
+ bcc CopyDataInit
+
+/* Zero fill the bss segment. */
+ ldr r2, =_sbss
+ ldr r4, =_ebss
+ movs r3, #0
+ b LoopFillZerobss
+
+FillZerobss:
+ str r3, [r2]
+ adds r2, r2, #4
+
+LoopFillZerobss:
+ cmp r2, r4
+ bcc FillZerobss
+
+/* Call static constructors */
+ bl __libc_init_array
+/* Call the application's entry point.*/
+ bl main
+
+LoopForever:
+ b LoopForever
+
+ .size Reset_Handler, .-Reset_Handler
+
+/**
+ * @brief This is the code that gets called when the processor receives an
+ * unexpected interrupt. This simply enters an infinite loop, preserving
+ * the system state for examination by a debugger.
+ *
+ * @param None
+ * @retval : None
+*/
+ .section .text.Default_Handler,"ax",%progbits
+Default_Handler:
+Infinite_Loop:
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
+
+/******************************************************************************
+*
+* The STM32F429ZITx vector table. Note that the proper constructs
+* must be placed on this to ensure that it ends up at physical address
+* 0x0000.0000.
+*
+******************************************************************************/
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
+
+g_pfnVectors:
+ .word _estack
+ .word Reset_Handler
+ .word NMI_Handler
+ .word HardFault_Handler
+ .word MemManage_Handler
+ .word BusFault_Handler
+ .word UsageFault_Handler
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word SVC_Handler
+ .word DebugMon_Handler
+ .word 0
+ .word PendSV_Handler
+ .word SysTick_Handler
+ .word WWDG_IRQHandler /* Window Watchdog interrupt */
+ .word PVD_IRQHandler /* PVD through EXTI line detection interrupt */
+ .word TAMP_STAMP_IRQHandler /* Tamper and TimeStamp interrupts through the EXTI line */
+ .word RTC_WKUP_IRQHandler /* RTC Wakeup interrupt through the EXTI line */
+ .word FLASH_IRQHandler /* Flash global interrupt */
+ .word RCC_IRQHandler /* RCC global interrupt */
+ .word EXTI0_IRQHandler /* EXTI Line0 interrupt */
+ .word EXTI1_IRQHandler /* EXTI Line1 interrupt */
+ .word EXTI2_IRQHandler /* EXTI Line2 interrupt */
+ .word EXTI3_IRQHandler /* EXTI Line3 interrupt */
+ .word EXTI4_IRQHandler /* EXTI Line4 interrupt */
+ .word DMA1_Stream0_IRQHandler /* DMA1 Stream0 global interrupt */
+ .word DMA1_Stream1_IRQHandler /* DMA1 Stream1 global interrupt */
+ .word DMA1_Stream2_IRQHandler /* DMA1 Stream2 global interrupt */
+ .word DMA1_Stream3_IRQHandler /* DMA1 Stream3 global interrupt */
+ .word DMA1_Stream4_IRQHandler /* DMA1 Stream4 global interrupt */
+ .word DMA1_Stream5_IRQHandler /* DMA1 Stream5 global interrupt */
+ .word DMA1_Stream6_IRQHandler /* DMA1 Stream6 global interrupt */
+ .word ADC_IRQHandler /* ADC2 global interrupts */
+ .word CAN1_TX_IRQHandler /* CAN1 TX interrupts */
+ .word CAN1_RX0_IRQHandler /* CAN1 RX0 interrupts */
+ .word CAN1_RX1_IRQHandler /* CAN1 RX1 interrupts */
+ .word CAN1_SCE_IRQHandler /* CAN1 SCE interrupt */
+ .word EXTI9_5_IRQHandler /* EXTI Line[9:5] interrupts */
+ .word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break interrupt and TIM9 global interrupt */
+ .word TIM1_UP_TIM10_IRQHandler /* TIM1 Update interrupt and TIM10 global interrupt */
+ .word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation interrupts and TIM11 global interrupt */
+ .word TIM1_CC_IRQHandler /* TIM1 Capture Compare interrupt */
+ .word TIM2_IRQHandler /* TIM2 global interrupt */
+ .word TIM3_IRQHandler /* TIM3 global interrupt */
+ .word TIM4_IRQHandler /* TIM4 global interrupt */
+ .word I2C1_EV_IRQHandler /* I2C1 event interrupt */
+ .word I2C1_ER_IRQHandler /* I2C1 error interrupt */
+ .word I2C2_EV_IRQHandler /* I2C2 event interrupt */
+ .word I2C2_ER_IRQHandler /* I2C2 error interrupt */
+ .word SPI1_IRQHandler /* SPI1 global interrupt */
+ .word SPI2_IRQHandler /* SPI2 global interrupt */
+ .word USART1_IRQHandler /* USART1 global interrupt */
+ .word USART2_IRQHandler /* USART2 global interrupt */
+ .word USART3_IRQHandler /* USART3 global interrupt */
+ .word EXTI15_10_IRQHandler /* EXTI Line[15:10] interrupts */
+ .word RTC_Alarm_IRQHandler /* RTC Alarms (A and B) through EXTI line interrupt */
+ .word OTG_FS_WKUP_IRQHandler /* USB On-The-Go FS Wakeup through EXTI line interrupt */
+ .word TIM8_BRK_TIM12_IRQHandler /* TIM8 Break interrupt and TIM12 global interrupt */
+ .word TIM8_UP_TIM13_IRQHandler /* TIM8 Update interrupt and TIM13 global interrupt */
+ .word TIM8_TRG_COM_TIM14_IRQHandler /* TIM8 Trigger and Commutation interrupts and TIM14 global interrupt */
+ .word TIM8_CC_IRQHandler /* TIM8 Capture Compare interrupt */
+ .word DMA1_Stream7_IRQHandler /* DMA1 Stream7 global interrupt */
+ .word FMC_IRQHandler /* FMC global interrupt */
+ .word SDIO_IRQHandler /* SDIO global interrupt */
+ .word TIM5_IRQHandler /* TIM5 global interrupt */
+ .word SPI3_IRQHandler /* SPI3 global interrupt */
+ .word UART4_IRQHandler /* UART4 global interrupt */
+ .word UART5_IRQHandler /* UART5 global interrupt */
+ .word TIM6_DAC_IRQHandler /* TIM6 global interrupt, DAC1 and DAC2 underrun error interrupt */
+ .word TIM7_IRQHandler /* TIM7 global interrupt */
+ .word DMA2_Stream0_IRQHandler /* DMA2 Stream0 global interrupt */
+ .word DMA2_Stream1_IRQHandler /* DMA2 Stream1 global interrupt */
+ .word DMA2_Stream2_IRQHandler /* DMA2 Stream2 global interrupt */
+ .word DMA2_Stream3_IRQHandler /* DMA2 Stream3 global interrupt */
+ .word DMA2_Stream4_IRQHandler /* DMA2 Stream4 global interrupt */
+ .word ETH_IRQHandler /* Ethernet global interrupt */
+ .word ETH_WKUP_IRQHandler /* Ethernet Wakeup through EXTI line interrupt */
+ .word CAN2_TX_IRQHandler /* CAN2 TX interrupts */
+ .word CAN2_RX0_IRQHandler /* CAN2 RX0 interrupts */
+ .word CAN2_RX1_IRQHandler /* CAN2 RX1 interrupts */
+ .word CAN2_SCE_IRQHandler /* CAN2 SCE interrupt */
+ .word OTG_FS_IRQHandler /* USB On The Go FS global interrupt */
+ .word DMA2_Stream5_IRQHandler /* DMA2 Stream5 global interrupt */
+ .word DMA2_Stream6_IRQHandler /* DMA2 Stream6 global interrupt */
+ .word DMA2_Stream7_IRQHandler /* DMA2 Stream7 global interrupt */
+ .word USART6_IRQHandler /* USART6 global interrupt */
+ .word I2C3_EV_IRQHandler /* I2C3 event interrupt */
+ .word I2C3_ER_IRQHandler /* I2C3 error interrupt */
+ .word OTG_HS_EP1_OUT_IRQHandler /* USB On The Go HS End Point 1 Out global interrupt */
+ .word OTG_HS_EP1_IN_IRQHandler /* USB On The Go HS End Point 1 In global interrupt */
+ .word OTG_HS_WKUP_IRQHandler /* USB On The Go HS Wakeup through EXTI interrupt */
+ .word OTG_HS_IRQHandler /* USB On The Go HS global interrupt */
+ .word DCMI_IRQHandler /* DCMI global interrupt */
+ .word CRYP_IRQHandler /* CRYP crypto global interrupt */
+ .word HASH_RNG_IRQHandler /* Hash and Rng global interrupt */
+ .word FPU_IRQHandler /* Floating point interrupt */
+ .word UART7_IRQHandler /* UART 7 global interrupt */
+ .word UART8_IRQHandler /* UART 8 global interrupt */
+ .word SPI4_IRQHandler /* SPI 4 global interrupt */
+ .word SPI5_IRQHandler /* SPI 5 global interrupt */
+ .word SPI6_IRQHandler /* SPI 6 global interrupt */
+ .word SAI1_IRQHandler /* SAI1 global interrupt */
+ .word LCD_TFT_IRQHandler /* LTDC global interrupt */
+ .word LCD_TFT_1_IRQHandler /* LTDC global error interrupt */
+ .word DMA2D_IRQHandler /* DMA2D global interrupt */
+
+/*******************************************************************************
+*
+* Provide weak aliases for each Exception handler to the Default_Handler.
+* As they are weak aliases, any function with the same name will override
+* this definition.
+*
+*******************************************************************************/
+
+ .weak NMI_Handler
+ .thumb_set NMI_Handler,Default_Handler
+
+ .weak HardFault_Handler
+ .thumb_set HardFault_Handler,Default_Handler
+
+ .weak MemManage_Handler
+ .thumb_set MemManage_Handler,Default_Handler
+
+ .weak BusFault_Handler
+ .thumb_set BusFault_Handler,Default_Handler
+
+ .weak UsageFault_Handler
+ .thumb_set UsageFault_Handler,Default_Handler
+
+ .weak SVC_Handler
+ .thumb_set SVC_Handler,Default_Handler
+
+ .weak DebugMon_Handler
+ .thumb_set DebugMon_Handler,Default_Handler
+
+ .weak PendSV_Handler
+ .thumb_set PendSV_Handler,Default_Handler
+
+ .weak SysTick_Handler
+ .thumb_set SysTick_Handler,Default_Handler
+
+ .weak WWDG_IRQHandler
+ .thumb_set WWDG_IRQHandler,Default_Handler
+
+ .weak PVD_IRQHandler
+ .thumb_set PVD_IRQHandler,Default_Handler
+
+ .weak TAMP_STAMP_IRQHandler
+ .thumb_set TAMP_STAMP_IRQHandler,Default_Handler
+
+ .weak RTC_WKUP_IRQHandler
+ .thumb_set RTC_WKUP_IRQHandler,Default_Handler
+
+ .weak FLASH_IRQHandler
+ .thumb_set FLASH_IRQHandler,Default_Handler
+
+ .weak RCC_IRQHandler
+ .thumb_set RCC_IRQHandler,Default_Handler
+
+ .weak EXTI0_IRQHandler
+ .thumb_set EXTI0_IRQHandler,Default_Handler
+
+ .weak EXTI1_IRQHandler
+ .thumb_set EXTI1_IRQHandler,Default_Handler
+
+ .weak EXTI2_IRQHandler
+ .thumb_set EXTI2_IRQHandler,Default_Handler
+
+ .weak EXTI3_IRQHandler
+ .thumb_set EXTI3_IRQHandler,Default_Handler
+
+ .weak EXTI4_IRQHandler
+ .thumb_set EXTI4_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream0_IRQHandler
+ .thumb_set DMA1_Stream0_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream1_IRQHandler
+ .thumb_set DMA1_Stream1_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream2_IRQHandler
+ .thumb_set DMA1_Stream2_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream3_IRQHandler
+ .thumb_set DMA1_Stream3_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream4_IRQHandler
+ .thumb_set DMA1_Stream4_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream5_IRQHandler
+ .thumb_set DMA1_Stream5_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream6_IRQHandler
+ .thumb_set DMA1_Stream6_IRQHandler,Default_Handler
+
+ .weak ADC_IRQHandler
+ .thumb_set ADC_IRQHandler,Default_Handler
+
+ .weak CAN1_TX_IRQHandler
+ .thumb_set CAN1_TX_IRQHandler,Default_Handler
+
+ .weak CAN1_RX0_IRQHandler
+ .thumb_set CAN1_RX0_IRQHandler,Default_Handler
+
+ .weak CAN1_RX1_IRQHandler
+ .thumb_set CAN1_RX1_IRQHandler,Default_Handler
+
+ .weak CAN1_SCE_IRQHandler
+ .thumb_set CAN1_SCE_IRQHandler,Default_Handler
+
+ .weak EXTI9_5_IRQHandler
+ .thumb_set EXTI9_5_IRQHandler,Default_Handler
+
+ .weak TIM1_BRK_TIM9_IRQHandler
+ .thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler
+
+ .weak TIM1_UP_TIM10_IRQHandler
+ .thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler
+
+ .weak TIM1_TRG_COM_TIM11_IRQHandler
+ .thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler
+
+ .weak TIM1_CC_IRQHandler
+ .thumb_set TIM1_CC_IRQHandler,Default_Handler
+
+ .weak TIM2_IRQHandler
+ .thumb_set TIM2_IRQHandler,Default_Handler
+
+ .weak TIM3_IRQHandler
+ .thumb_set TIM3_IRQHandler,Default_Handler
+
+ .weak TIM4_IRQHandler
+ .thumb_set TIM4_IRQHandler,Default_Handler
+
+ .weak I2C1_EV_IRQHandler
+ .thumb_set I2C1_EV_IRQHandler,Default_Handler
+
+ .weak I2C1_ER_IRQHandler
+ .thumb_set I2C1_ER_IRQHandler,Default_Handler
+
+ .weak I2C2_EV_IRQHandler
+ .thumb_set I2C2_EV_IRQHandler,Default_Handler
+
+ .weak I2C2_ER_IRQHandler
+ .thumb_set I2C2_ER_IRQHandler,Default_Handler
+
+ .weak SPI1_IRQHandler
+ .thumb_set SPI1_IRQHandler,Default_Handler
+
+ .weak SPI2_IRQHandler
+ .thumb_set SPI2_IRQHandler,Default_Handler
+
+ .weak USART1_IRQHandler
+ .thumb_set USART1_IRQHandler,Default_Handler
+
+ .weak USART2_IRQHandler
+ .thumb_set USART2_IRQHandler,Default_Handler
+
+ .weak USART3_IRQHandler
+ .thumb_set USART3_IRQHandler,Default_Handler
+
+ .weak EXTI15_10_IRQHandler
+ .thumb_set EXTI15_10_IRQHandler,Default_Handler
+
+ .weak RTC_Alarm_IRQHandler
+ .thumb_set RTC_Alarm_IRQHandler,Default_Handler
+
+ .weak OTG_FS_WKUP_IRQHandler
+ .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler
+
+ .weak TIM8_BRK_TIM12_IRQHandler
+ .thumb_set TIM8_BRK_TIM12_IRQHandler,Default_Handler
+
+ .weak TIM8_UP_TIM13_IRQHandler
+ .thumb_set TIM8_UP_TIM13_IRQHandler,Default_Handler
+
+ .weak TIM8_TRG_COM_TIM14_IRQHandler
+ .thumb_set TIM8_TRG_COM_TIM14_IRQHandler,Default_Handler
+
+ .weak TIM8_CC_IRQHandler
+ .thumb_set TIM8_CC_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream7_IRQHandler
+ .thumb_set DMA1_Stream7_IRQHandler,Default_Handler
+
+ .weak FMC_IRQHandler
+ .thumb_set FMC_IRQHandler,Default_Handler
+
+ .weak SDIO_IRQHandler
+ .thumb_set SDIO_IRQHandler,Default_Handler
+
+ .weak TIM5_IRQHandler
+ .thumb_set TIM5_IRQHandler,Default_Handler
+
+ .weak SPI3_IRQHandler
+ .thumb_set SPI3_IRQHandler,Default_Handler
+
+ .weak UART4_IRQHandler
+ .thumb_set UART4_IRQHandler,Default_Handler
+
+ .weak UART5_IRQHandler
+ .thumb_set UART5_IRQHandler,Default_Handler
+
+ .weak TIM6_DAC_IRQHandler
+ .thumb_set TIM6_DAC_IRQHandler,Default_Handler
+
+ .weak TIM7_IRQHandler
+ .thumb_set TIM7_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream0_IRQHandler
+ .thumb_set DMA2_Stream0_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream1_IRQHandler
+ .thumb_set DMA2_Stream1_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream2_IRQHandler
+ .thumb_set DMA2_Stream2_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream3_IRQHandler
+ .thumb_set DMA2_Stream3_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream4_IRQHandler
+ .thumb_set DMA2_Stream4_IRQHandler,Default_Handler
+
+ .weak ETH_IRQHandler
+ .thumb_set ETH_IRQHandler,Default_Handler
+
+ .weak ETH_WKUP_IRQHandler
+ .thumb_set ETH_WKUP_IRQHandler,Default_Handler
+
+ .weak CAN2_TX_IRQHandler
+ .thumb_set CAN2_TX_IRQHandler,Default_Handler
+
+ .weak CAN2_RX0_IRQHandler
+ .thumb_set CAN2_RX0_IRQHandler,Default_Handler
+
+ .weak CAN2_RX1_IRQHandler
+ .thumb_set CAN2_RX1_IRQHandler,Default_Handler
+
+ .weak CAN2_SCE_IRQHandler
+ .thumb_set CAN2_SCE_IRQHandler,Default_Handler
+
+ .weak OTG_FS_IRQHandler
+ .thumb_set OTG_FS_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream5_IRQHandler
+ .thumb_set DMA2_Stream5_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream6_IRQHandler
+ .thumb_set DMA2_Stream6_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream7_IRQHandler
+ .thumb_set DMA2_Stream7_IRQHandler,Default_Handler
+
+ .weak USART6_IRQHandler
+ .thumb_set USART6_IRQHandler,Default_Handler
+
+ .weak I2C3_EV_IRQHandler
+ .thumb_set I2C3_EV_IRQHandler,Default_Handler
+
+ .weak I2C3_ER_IRQHandler
+ .thumb_set I2C3_ER_IRQHandler,Default_Handler
+
+ .weak OTG_HS_EP1_OUT_IRQHandler
+ .thumb_set OTG_HS_EP1_OUT_IRQHandler,Default_Handler
+
+ .weak OTG_HS_EP1_IN_IRQHandler
+ .thumb_set OTG_HS_EP1_IN_IRQHandler,Default_Handler
+
+ .weak OTG_HS_WKUP_IRQHandler
+ .thumb_set OTG_HS_WKUP_IRQHandler,Default_Handler
+
+ .weak OTG_HS_IRQHandler
+ .thumb_set OTG_HS_IRQHandler,Default_Handler
+
+ .weak DCMI_IRQHandler
+ .thumb_set DCMI_IRQHandler,Default_Handler
+
+ .weak CRYP_IRQHandler
+ .thumb_set CRYP_IRQHandler,Default_Handler
+
+ .weak HASH_RNG_IRQHandler
+ .thumb_set HASH_RNG_IRQHandler,Default_Handler
+
+ .weak FPU_IRQHandler
+ .thumb_set FPU_IRQHandler,Default_Handler
+
+ .weak UART7_IRQHandler
+ .thumb_set UART7_IRQHandler,Default_Handler
+
+ .weak UART8_IRQHandler
+ .thumb_set UART8_IRQHandler,Default_Handler
+
+ .weak SPI4_IRQHandler
+ .thumb_set SPI4_IRQHandler,Default_Handler
+
+ .weak SPI5_IRQHandler
+ .thumb_set SPI5_IRQHandler,Default_Handler
+
+ .weak SPI6_IRQHandler
+ .thumb_set SPI6_IRQHandler,Default_Handler
+
+ .weak SAI1_IRQHandler
+ .thumb_set SAI1_IRQHandler,Default_Handler
+
+ .weak LCD_TFT_IRQHandler
+ .thumb_set LCD_TFT_IRQHandler,Default_Handler
+
+ .weak LCD_TFT_1_IRQHandler
+ .thumb_set LCD_TFT_1_IRQHandler,Default_Handler
+
+ .weak DMA2D_IRQHandler
+ .thumb_set DMA2D_IRQHandler,Default_Handler
+
+ .weak SystemInit
+
+/************************ (C) COPYRIGHT STMicroelectonics *****END OF FILE****/
diff --git a/Debug/Core/Src/subdir.mk b/Debug/Core/Src/subdir.mk
new file mode 100644
index 0000000..6acfc09
--- /dev/null
+++ b/Debug/Core/Src/subdir.mk
@@ -0,0 +1,36 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Core/Src/main.c \
+../Core/Src/stm32f4xx_hal_msp.c \
+../Core/Src/stm32f4xx_it.c \
+../Core/Src/system_stm32f4xx.c
+
+OBJS += \
+./Core/Src/main.o \
+./Core/Src/stm32f4xx_hal_msp.o \
+./Core/Src/stm32f4xx_it.o \
+./Core/Src/system_stm32f4xx.o
+
+C_DEPS += \
+./Core/Src/main.d \
+./Core/Src/stm32f4xx_hal_msp.d \
+./Core/Src/stm32f4xx_it.d \
+./Core/Src/system_stm32f4xx.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Core/Src/%.o Core/Src/%.su: ../Core/Src/%.c Core/Src/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Core-2f-Src
+
+clean-Core-2f-Src:
+ -$(RM) ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32f4xx_hal_msp.d ./Core/Src/stm32f4xx_hal_msp.o ./Core/Src/stm32f4xx_hal_msp.su ./Core/Src/stm32f4xx_it.d ./Core/Src/stm32f4xx_it.o ./Core/Src/stm32f4xx_it.su ./Core/Src/system_stm32f4xx.d ./Core/Src/system_stm32f4xx.o ./Core/Src/system_stm32f4xx.su
+
+.PHONY: clean-Core-2f-Src
+
diff --git a/Debug/Core/Startup/subdir.mk b/Debug/Core/Startup/subdir.mk
new file mode 100644
index 0000000..1863b11
--- /dev/null
+++ b/Debug/Core/Startup/subdir.mk
@@ -0,0 +1,27 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+S_SRCS += \
+../Core/Startup/startup_stm32f429zitx.s
+
+OBJS += \
+./Core/Startup/startup_stm32f429zitx.o
+
+S_DEPS += \
+./Core/Startup/startup_stm32f429zitx.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Core/Startup/%.o: ../Core/Startup/%.s Core/Startup/subdir.mk
+ arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" "$<"
+
+clean: clean-Core-2f-Startup
+
+clean-Core-2f-Startup:
+ -$(RM) ./Core/Startup/startup_stm32f429zitx.d ./Core/Startup/startup_stm32f429zitx.o
+
+.PHONY: clean-Core-2f-Startup
+
diff --git a/Debug/Drivers/BSP/Components/dp83848/subdir.mk b/Debug/Drivers/BSP/Components/dp83848/subdir.mk
new file mode 100644
index 0000000..0435fc8
--- /dev/null
+++ b/Debug/Drivers/BSP/Components/dp83848/subdir.mk
@@ -0,0 +1,27 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Drivers/BSP/Components/dp83848/dp83848.c
+
+OBJS += \
+./Drivers/BSP/Components/dp83848/dp83848.o
+
+C_DEPS += \
+./Drivers/BSP/Components/dp83848/dp83848.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Drivers/BSP/Components/dp83848/%.o Drivers/BSP/Components/dp83848/%.su: ../Drivers/BSP/Components/dp83848/%.c Drivers/BSP/Components/dp83848/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Drivers-2f-BSP-2f-Components-2f-dp83848
+
+clean-Drivers-2f-BSP-2f-Components-2f-dp83848:
+ -$(RM) ./Drivers/BSP/Components/dp83848/dp83848.d ./Drivers/BSP/Components/dp83848/dp83848.o ./Drivers/BSP/Components/dp83848/dp83848.su
+
+.PHONY: clean-Drivers-2f-BSP-2f-Components-2f-dp83848
+
diff --git a/Debug/Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk b/Debug/Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk
new file mode 100644
index 0000000..c4b42c8
--- /dev/null
+++ b/Debug/Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk
@@ -0,0 +1,72 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c
+
+OBJS += \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o
+
+C_DEPS += \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Drivers/STM32F4xx_HAL_Driver/Src/%.o Drivers/STM32F4xx_HAL_Driver/Src/%.su: ../Drivers/STM32F4xx_HAL_Driver/Src/%.c Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Drivers-2f-STM32F4xx_HAL_Driver-2f-Src
+
+clean-Drivers-2f-STM32F4xx_HAL_Driver-2f-Src:
+ -$(RM) ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.su ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.su
+
+.PHONY: clean-Drivers-2f-STM32F4xx_HAL_Driver-2f-Src
+
diff --git a/Debug/LWIP/App/subdir.mk b/Debug/LWIP/App/subdir.mk
new file mode 100644
index 0000000..615717c
--- /dev/null
+++ b/Debug/LWIP/App/subdir.mk
@@ -0,0 +1,27 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../LWIP/App/lwip.c
+
+OBJS += \
+./LWIP/App/lwip.o
+
+C_DEPS += \
+./LWIP/App/lwip.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+LWIP/App/%.o LWIP/App/%.su: ../LWIP/App/%.c LWIP/App/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-LWIP-2f-App
+
+clean-LWIP-2f-App:
+ -$(RM) ./LWIP/App/lwip.d ./LWIP/App/lwip.o ./LWIP/App/lwip.su
+
+.PHONY: clean-LWIP-2f-App
+
diff --git a/Debug/LWIP/Target/subdir.mk b/Debug/LWIP/Target/subdir.mk
new file mode 100644
index 0000000..9746958
--- /dev/null
+++ b/Debug/LWIP/Target/subdir.mk
@@ -0,0 +1,27 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../LWIP/Target/ethernetif.c
+
+OBJS += \
+./LWIP/Target/ethernetif.o
+
+C_DEPS += \
+./LWIP/Target/ethernetif.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+LWIP/Target/%.o LWIP/Target/%.su: ../LWIP/Target/%.c LWIP/Target/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-LWIP-2f-Target
+
+clean-LWIP-2f-Target:
+ -$(RM) ./LWIP/Target/ethernetif.d ./LWIP/Target/ethernetif.o ./LWIP/Target/ethernetif.su
+
+.PHONY: clean-LWIP-2f-Target
+
diff --git a/Debug/Middlewares/Third_Party/LwIP/src/api/subdir.mk b/Debug/Middlewares/Third_Party/LwIP/src/api/subdir.mk
new file mode 100644
index 0000000..4eb5053
--- /dev/null
+++ b/Debug/Middlewares/Third_Party/LwIP/src/api/subdir.mk
@@ -0,0 +1,51 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Middlewares/Third_Party/LwIP/src/api/api_lib.c \
+../Middlewares/Third_Party/LwIP/src/api/api_msg.c \
+../Middlewares/Third_Party/LwIP/src/api/err.c \
+../Middlewares/Third_Party/LwIP/src/api/if_api.c \
+../Middlewares/Third_Party/LwIP/src/api/netbuf.c \
+../Middlewares/Third_Party/LwIP/src/api/netdb.c \
+../Middlewares/Third_Party/LwIP/src/api/netifapi.c \
+../Middlewares/Third_Party/LwIP/src/api/sockets.c \
+../Middlewares/Third_Party/LwIP/src/api/tcpip.c
+
+OBJS += \
+./Middlewares/Third_Party/LwIP/src/api/api_lib.o \
+./Middlewares/Third_Party/LwIP/src/api/api_msg.o \
+./Middlewares/Third_Party/LwIP/src/api/err.o \
+./Middlewares/Third_Party/LwIP/src/api/if_api.o \
+./Middlewares/Third_Party/LwIP/src/api/netbuf.o \
+./Middlewares/Third_Party/LwIP/src/api/netdb.o \
+./Middlewares/Third_Party/LwIP/src/api/netifapi.o \
+./Middlewares/Third_Party/LwIP/src/api/sockets.o \
+./Middlewares/Third_Party/LwIP/src/api/tcpip.o
+
+C_DEPS += \
+./Middlewares/Third_Party/LwIP/src/api/api_lib.d \
+./Middlewares/Third_Party/LwIP/src/api/api_msg.d \
+./Middlewares/Third_Party/LwIP/src/api/err.d \
+./Middlewares/Third_Party/LwIP/src/api/if_api.d \
+./Middlewares/Third_Party/LwIP/src/api/netbuf.d \
+./Middlewares/Third_Party/LwIP/src/api/netdb.d \
+./Middlewares/Third_Party/LwIP/src/api/netifapi.d \
+./Middlewares/Third_Party/LwIP/src/api/sockets.d \
+./Middlewares/Third_Party/LwIP/src/api/tcpip.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Middlewares/Third_Party/LwIP/src/api/%.o Middlewares/Third_Party/LwIP/src/api/%.su: ../Middlewares/Third_Party/LwIP/src/api/%.c Middlewares/Third_Party/LwIP/src/api/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-api
+
+clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-api:
+ -$(RM) ./Middlewares/Third_Party/LwIP/src/api/api_lib.d ./Middlewares/Third_Party/LwIP/src/api/api_lib.o ./Middlewares/Third_Party/LwIP/src/api/api_lib.su ./Middlewares/Third_Party/LwIP/src/api/api_msg.d ./Middlewares/Third_Party/LwIP/src/api/api_msg.o ./Middlewares/Third_Party/LwIP/src/api/api_msg.su ./Middlewares/Third_Party/LwIP/src/api/err.d ./Middlewares/Third_Party/LwIP/src/api/err.o ./Middlewares/Third_Party/LwIP/src/api/err.su ./Middlewares/Third_Party/LwIP/src/api/if_api.d ./Middlewares/Third_Party/LwIP/src/api/if_api.o ./Middlewares/Third_Party/LwIP/src/api/if_api.su ./Middlewares/Third_Party/LwIP/src/api/netbuf.d ./Middlewares/Third_Party/LwIP/src/api/netbuf.o ./Middlewares/Third_Party/LwIP/src/api/netbuf.su ./Middlewares/Third_Party/LwIP/src/api/netdb.d ./Middlewares/Third_Party/LwIP/src/api/netdb.o ./Middlewares/Third_Party/LwIP/src/api/netdb.su ./Middlewares/Third_Party/LwIP/src/api/netifapi.d ./Middlewares/Third_Party/LwIP/src/api/netifapi.o ./Middlewares/Third_Party/LwIP/src/api/netifapi.su ./Middlewares/Third_Party/LwIP/src/api/sockets.d ./Middlewares/Third_Party/LwIP/src/api/sockets.o ./Middlewares/Third_Party/LwIP/src/api/sockets.su ./Middlewares/Third_Party/LwIP/src/api/tcpip.d ./Middlewares/Third_Party/LwIP/src/api/tcpip.o ./Middlewares/Third_Party/LwIP/src/api/tcpip.su
+
+.PHONY: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-api
+
diff --git a/Debug/Middlewares/Third_Party/LwIP/src/apps/mqtt/subdir.mk b/Debug/Middlewares/Third_Party/LwIP/src/apps/mqtt/subdir.mk
new file mode 100644
index 0000000..5d3f8dd
--- /dev/null
+++ b/Debug/Middlewares/Third_Party/LwIP/src/apps/mqtt/subdir.mk
@@ -0,0 +1,27 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Middlewares/Third_Party/LwIP/src/apps/mqtt/mqtt.c
+
+OBJS += \
+./Middlewares/Third_Party/LwIP/src/apps/mqtt/mqtt.o
+
+C_DEPS += \
+./Middlewares/Third_Party/LwIP/src/apps/mqtt/mqtt.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Middlewares/Third_Party/LwIP/src/apps/mqtt/%.o Middlewares/Third_Party/LwIP/src/apps/mqtt/%.su: ../Middlewares/Third_Party/LwIP/src/apps/mqtt/%.c Middlewares/Third_Party/LwIP/src/apps/mqtt/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-apps-2f-mqtt
+
+clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-apps-2f-mqtt:
+ -$(RM) ./Middlewares/Third_Party/LwIP/src/apps/mqtt/mqtt.d ./Middlewares/Third_Party/LwIP/src/apps/mqtt/mqtt.o ./Middlewares/Third_Party/LwIP/src/apps/mqtt/mqtt.su
+
+.PHONY: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-apps-2f-mqtt
+
diff --git a/Debug/Middlewares/Third_Party/LwIP/src/core/ipv4/subdir.mk b/Debug/Middlewares/Third_Party/LwIP/src/core/ipv4/subdir.mk
new file mode 100644
index 0000000..1e17e8d
--- /dev/null
+++ b/Debug/Middlewares/Third_Party/LwIP/src/core/ipv4/subdir.mk
@@ -0,0 +1,48 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Middlewares/Third_Party/LwIP/src/core/ipv4/autoip.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv4/dhcp.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv4/etharp.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv4/icmp.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv4/igmp.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv4/ip4.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_addr.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_frag.c
+
+OBJS += \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/autoip.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/dhcp.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/etharp.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/icmp.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/igmp.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_addr.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_frag.o
+
+C_DEPS += \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/autoip.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/dhcp.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/etharp.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/icmp.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/igmp.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_addr.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_frag.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Middlewares/Third_Party/LwIP/src/core/ipv4/%.o Middlewares/Third_Party/LwIP/src/core/ipv4/%.su: ../Middlewares/Third_Party/LwIP/src/core/ipv4/%.c Middlewares/Third_Party/LwIP/src/core/ipv4/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-core-2f-ipv4
+
+clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-core-2f-ipv4:
+ -$(RM) ./Middlewares/Third_Party/LwIP/src/core/ipv4/autoip.d ./Middlewares/Third_Party/LwIP/src/core/ipv4/autoip.o ./Middlewares/Third_Party/LwIP/src/core/ipv4/autoip.su ./Middlewares/Third_Party/LwIP/src/core/ipv4/dhcp.d ./Middlewares/Third_Party/LwIP/src/core/ipv4/dhcp.o ./Middlewares/Third_Party/LwIP/src/core/ipv4/dhcp.su ./Middlewares/Third_Party/LwIP/src/core/ipv4/etharp.d ./Middlewares/Third_Party/LwIP/src/core/ipv4/etharp.o ./Middlewares/Third_Party/LwIP/src/core/ipv4/etharp.su ./Middlewares/Third_Party/LwIP/src/core/ipv4/icmp.d ./Middlewares/Third_Party/LwIP/src/core/ipv4/icmp.o ./Middlewares/Third_Party/LwIP/src/core/ipv4/icmp.su ./Middlewares/Third_Party/LwIP/src/core/ipv4/igmp.d ./Middlewares/Third_Party/LwIP/src/core/ipv4/igmp.o ./Middlewares/Third_Party/LwIP/src/core/ipv4/igmp.su ./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4.d ./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4.o ./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4.su ./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_addr.d ./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_addr.o ./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_addr.su ./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_frag.d ./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_frag.o ./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_frag.su
+
+.PHONY: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-core-2f-ipv4
+
diff --git a/Debug/Middlewares/Third_Party/LwIP/src/core/ipv6/subdir.mk b/Debug/Middlewares/Third_Party/LwIP/src/core/ipv6/subdir.mk
new file mode 100644
index 0000000..4c53e41
--- /dev/null
+++ b/Debug/Middlewares/Third_Party/LwIP/src/core/ipv6/subdir.mk
@@ -0,0 +1,51 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Middlewares/Third_Party/LwIP/src/core/ipv6/dhcp6.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv6/ethip6.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv6/icmp6.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv6/inet6.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv6/ip6.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_addr.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_frag.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv6/mld6.c \
+../Middlewares/Third_Party/LwIP/src/core/ipv6/nd6.c
+
+OBJS += \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/dhcp6.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/ethip6.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/icmp6.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/inet6.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_addr.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_frag.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/mld6.o \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/nd6.o
+
+C_DEPS += \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/dhcp6.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/ethip6.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/icmp6.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/inet6.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_addr.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_frag.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/mld6.d \
+./Middlewares/Third_Party/LwIP/src/core/ipv6/nd6.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Middlewares/Third_Party/LwIP/src/core/ipv6/%.o Middlewares/Third_Party/LwIP/src/core/ipv6/%.su: ../Middlewares/Third_Party/LwIP/src/core/ipv6/%.c Middlewares/Third_Party/LwIP/src/core/ipv6/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-core-2f-ipv6
+
+clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-core-2f-ipv6:
+ -$(RM) ./Middlewares/Third_Party/LwIP/src/core/ipv6/dhcp6.d ./Middlewares/Third_Party/LwIP/src/core/ipv6/dhcp6.o ./Middlewares/Third_Party/LwIP/src/core/ipv6/dhcp6.su ./Middlewares/Third_Party/LwIP/src/core/ipv6/ethip6.d ./Middlewares/Third_Party/LwIP/src/core/ipv6/ethip6.o ./Middlewares/Third_Party/LwIP/src/core/ipv6/ethip6.su ./Middlewares/Third_Party/LwIP/src/core/ipv6/icmp6.d ./Middlewares/Third_Party/LwIP/src/core/ipv6/icmp6.o ./Middlewares/Third_Party/LwIP/src/core/ipv6/icmp6.su ./Middlewares/Third_Party/LwIP/src/core/ipv6/inet6.d ./Middlewares/Third_Party/LwIP/src/core/ipv6/inet6.o ./Middlewares/Third_Party/LwIP/src/core/ipv6/inet6.su ./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6.d ./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6.o ./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6.su ./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_addr.d ./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_addr.o ./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_addr.su ./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_frag.d ./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_frag.o ./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_frag.su ./Middlewares/Third_Party/LwIP/src/core/ipv6/mld6.d ./Middlewares/Third_Party/LwIP/src/core/ipv6/mld6.o ./Middlewares/Third_Party/LwIP/src/core/ipv6/mld6.su ./Middlewares/Third_Party/LwIP/src/core/ipv6/nd6.d ./Middlewares/Third_Party/LwIP/src/core/ipv6/nd6.o ./Middlewares/Third_Party/LwIP/src/core/ipv6/nd6.su
+
+.PHONY: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-core-2f-ipv6
+
diff --git a/Debug/Middlewares/Third_Party/LwIP/src/core/subdir.mk b/Debug/Middlewares/Third_Party/LwIP/src/core/subdir.mk
new file mode 100644
index 0000000..9dc6c95
--- /dev/null
+++ b/Debug/Middlewares/Third_Party/LwIP/src/core/subdir.mk
@@ -0,0 +1,84 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Middlewares/Third_Party/LwIP/src/core/altcp.c \
+../Middlewares/Third_Party/LwIP/src/core/altcp_alloc.c \
+../Middlewares/Third_Party/LwIP/src/core/altcp_tcp.c \
+../Middlewares/Third_Party/LwIP/src/core/def.c \
+../Middlewares/Third_Party/LwIP/src/core/dns.c \
+../Middlewares/Third_Party/LwIP/src/core/inet_chksum.c \
+../Middlewares/Third_Party/LwIP/src/core/init.c \
+../Middlewares/Third_Party/LwIP/src/core/ip.c \
+../Middlewares/Third_Party/LwIP/src/core/mem.c \
+../Middlewares/Third_Party/LwIP/src/core/memp.c \
+../Middlewares/Third_Party/LwIP/src/core/netif.c \
+../Middlewares/Third_Party/LwIP/src/core/pbuf.c \
+../Middlewares/Third_Party/LwIP/src/core/raw.c \
+../Middlewares/Third_Party/LwIP/src/core/stats.c \
+../Middlewares/Third_Party/LwIP/src/core/sys.c \
+../Middlewares/Third_Party/LwIP/src/core/tcp.c \
+../Middlewares/Third_Party/LwIP/src/core/tcp_in.c \
+../Middlewares/Third_Party/LwIP/src/core/tcp_out.c \
+../Middlewares/Third_Party/LwIP/src/core/timeouts.c \
+../Middlewares/Third_Party/LwIP/src/core/udp.c
+
+OBJS += \
+./Middlewares/Third_Party/LwIP/src/core/altcp.o \
+./Middlewares/Third_Party/LwIP/src/core/altcp_alloc.o \
+./Middlewares/Third_Party/LwIP/src/core/altcp_tcp.o \
+./Middlewares/Third_Party/LwIP/src/core/def.o \
+./Middlewares/Third_Party/LwIP/src/core/dns.o \
+./Middlewares/Third_Party/LwIP/src/core/inet_chksum.o \
+./Middlewares/Third_Party/LwIP/src/core/init.o \
+./Middlewares/Third_Party/LwIP/src/core/ip.o \
+./Middlewares/Third_Party/LwIP/src/core/mem.o \
+./Middlewares/Third_Party/LwIP/src/core/memp.o \
+./Middlewares/Third_Party/LwIP/src/core/netif.o \
+./Middlewares/Third_Party/LwIP/src/core/pbuf.o \
+./Middlewares/Third_Party/LwIP/src/core/raw.o \
+./Middlewares/Third_Party/LwIP/src/core/stats.o \
+./Middlewares/Third_Party/LwIP/src/core/sys.o \
+./Middlewares/Third_Party/LwIP/src/core/tcp.o \
+./Middlewares/Third_Party/LwIP/src/core/tcp_in.o \
+./Middlewares/Third_Party/LwIP/src/core/tcp_out.o \
+./Middlewares/Third_Party/LwIP/src/core/timeouts.o \
+./Middlewares/Third_Party/LwIP/src/core/udp.o
+
+C_DEPS += \
+./Middlewares/Third_Party/LwIP/src/core/altcp.d \
+./Middlewares/Third_Party/LwIP/src/core/altcp_alloc.d \
+./Middlewares/Third_Party/LwIP/src/core/altcp_tcp.d \
+./Middlewares/Third_Party/LwIP/src/core/def.d \
+./Middlewares/Third_Party/LwIP/src/core/dns.d \
+./Middlewares/Third_Party/LwIP/src/core/inet_chksum.d \
+./Middlewares/Third_Party/LwIP/src/core/init.d \
+./Middlewares/Third_Party/LwIP/src/core/ip.d \
+./Middlewares/Third_Party/LwIP/src/core/mem.d \
+./Middlewares/Third_Party/LwIP/src/core/memp.d \
+./Middlewares/Third_Party/LwIP/src/core/netif.d \
+./Middlewares/Third_Party/LwIP/src/core/pbuf.d \
+./Middlewares/Third_Party/LwIP/src/core/raw.d \
+./Middlewares/Third_Party/LwIP/src/core/stats.d \
+./Middlewares/Third_Party/LwIP/src/core/sys.d \
+./Middlewares/Third_Party/LwIP/src/core/tcp.d \
+./Middlewares/Third_Party/LwIP/src/core/tcp_in.d \
+./Middlewares/Third_Party/LwIP/src/core/tcp_out.d \
+./Middlewares/Third_Party/LwIP/src/core/timeouts.d \
+./Middlewares/Third_Party/LwIP/src/core/udp.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Middlewares/Third_Party/LwIP/src/core/%.o Middlewares/Third_Party/LwIP/src/core/%.su: ../Middlewares/Third_Party/LwIP/src/core/%.c Middlewares/Third_Party/LwIP/src/core/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-core
+
+clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-core:
+ -$(RM) ./Middlewares/Third_Party/LwIP/src/core/altcp.d ./Middlewares/Third_Party/LwIP/src/core/altcp.o ./Middlewares/Third_Party/LwIP/src/core/altcp.su ./Middlewares/Third_Party/LwIP/src/core/altcp_alloc.d ./Middlewares/Third_Party/LwIP/src/core/altcp_alloc.o ./Middlewares/Third_Party/LwIP/src/core/altcp_alloc.su ./Middlewares/Third_Party/LwIP/src/core/altcp_tcp.d ./Middlewares/Third_Party/LwIP/src/core/altcp_tcp.o ./Middlewares/Third_Party/LwIP/src/core/altcp_tcp.su ./Middlewares/Third_Party/LwIP/src/core/def.d ./Middlewares/Third_Party/LwIP/src/core/def.o ./Middlewares/Third_Party/LwIP/src/core/def.su ./Middlewares/Third_Party/LwIP/src/core/dns.d ./Middlewares/Third_Party/LwIP/src/core/dns.o ./Middlewares/Third_Party/LwIP/src/core/dns.su ./Middlewares/Third_Party/LwIP/src/core/inet_chksum.d ./Middlewares/Third_Party/LwIP/src/core/inet_chksum.o ./Middlewares/Third_Party/LwIP/src/core/inet_chksum.su ./Middlewares/Third_Party/LwIP/src/core/init.d ./Middlewares/Third_Party/LwIP/src/core/init.o ./Middlewares/Third_Party/LwIP/src/core/init.su ./Middlewares/Third_Party/LwIP/src/core/ip.d ./Middlewares/Third_Party/LwIP/src/core/ip.o ./Middlewares/Third_Party/LwIP/src/core/ip.su ./Middlewares/Third_Party/LwIP/src/core/mem.d ./Middlewares/Third_Party/LwIP/src/core/mem.o ./Middlewares/Third_Party/LwIP/src/core/mem.su ./Middlewares/Third_Party/LwIP/src/core/memp.d ./Middlewares/Third_Party/LwIP/src/core/memp.o ./Middlewares/Third_Party/LwIP/src/core/memp.su ./Middlewares/Third_Party/LwIP/src/core/netif.d ./Middlewares/Third_Party/LwIP/src/core/netif.o ./Middlewares/Third_Party/LwIP/src/core/netif.su ./Middlewares/Third_Party/LwIP/src/core/pbuf.d ./Middlewares/Third_Party/LwIP/src/core/pbuf.o ./Middlewares/Third_Party/LwIP/src/core/pbuf.su ./Middlewares/Third_Party/LwIP/src/core/raw.d ./Middlewares/Third_Party/LwIP/src/core/raw.o ./Middlewares/Third_Party/LwIP/src/core/raw.su ./Middlewares/Third_Party/LwIP/src/core/stats.d ./Middlewares/Third_Party/LwIP/src/core/stats.o ./Middlewares/Third_Party/LwIP/src/core/stats.su ./Middlewares/Third_Party/LwIP/src/core/sys.d ./Middlewares/Third_Party/LwIP/src/core/sys.o ./Middlewares/Third_Party/LwIP/src/core/sys.su ./Middlewares/Third_Party/LwIP/src/core/tcp.d ./Middlewares/Third_Party/LwIP/src/core/tcp.o ./Middlewares/Third_Party/LwIP/src/core/tcp.su ./Middlewares/Third_Party/LwIP/src/core/tcp_in.d ./Middlewares/Third_Party/LwIP/src/core/tcp_in.o ./Middlewares/Third_Party/LwIP/src/core/tcp_in.su ./Middlewares/Third_Party/LwIP/src/core/tcp_out.d ./Middlewares/Third_Party/LwIP/src/core/tcp_out.o ./Middlewares/Third_Party/LwIP/src/core/tcp_out.su ./Middlewares/Third_Party/LwIP/src/core/timeouts.d ./Middlewares/Third_Party/LwIP/src/core/timeouts.o ./Middlewares/Third_Party/LwIP/src/core/timeouts.su ./Middlewares/Third_Party/LwIP/src/core/udp.d ./Middlewares/Third_Party/LwIP/src/core/udp.o ./Middlewares/Third_Party/LwIP/src/core/udp.su
+
+.PHONY: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-core
+
diff --git a/Debug/Middlewares/Third_Party/LwIP/src/netif/ppp/subdir.mk b/Debug/Middlewares/Third_Party/LwIP/src/netif/ppp/subdir.mk
new file mode 100644
index 0000000..16250bd
--- /dev/null
+++ b/Debug/Middlewares/Third_Party/LwIP/src/netif/ppp/subdir.mk
@@ -0,0 +1,99 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/auth.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/ccp.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/chap-md5.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/chap-new.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/chap_ms.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/demand.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/eap.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/ecp.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/eui64.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/fsm.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/ipcp.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/ipv6cp.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/lcp.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/magic.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/mppe.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/multilink.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/ppp.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/pppapi.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/pppcrypt.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/pppoe.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/pppol2tp.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/pppos.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/upap.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/utils.c \
+../Middlewares/Third_Party/LwIP/src/netif/ppp/vj.c
+
+OBJS += \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/auth.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/ccp.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-md5.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-new.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/chap_ms.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/demand.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/eap.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/ecp.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/eui64.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/fsm.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/ipcp.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/ipv6cp.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/lcp.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/magic.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/mppe.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/multilink.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/ppp.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/pppapi.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/pppcrypt.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/pppoe.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/pppol2tp.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/pppos.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/upap.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/utils.o \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/vj.o
+
+C_DEPS += \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/auth.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/ccp.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-md5.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-new.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/chap_ms.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/demand.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/eap.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/ecp.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/eui64.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/fsm.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/ipcp.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/ipv6cp.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/lcp.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/magic.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/mppe.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/multilink.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/ppp.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/pppapi.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/pppcrypt.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/pppoe.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/pppol2tp.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/pppos.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/upap.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/utils.d \
+./Middlewares/Third_Party/LwIP/src/netif/ppp/vj.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Middlewares/Third_Party/LwIP/src/netif/ppp/%.o Middlewares/Third_Party/LwIP/src/netif/ppp/%.su: ../Middlewares/Third_Party/LwIP/src/netif/ppp/%.c Middlewares/Third_Party/LwIP/src/netif/ppp/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-netif-2f-ppp
+
+clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-netif-2f-ppp:
+ -$(RM) ./Middlewares/Third_Party/LwIP/src/netif/ppp/auth.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/auth.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/auth.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/ccp.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/ccp.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/ccp.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-md5.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-md5.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-md5.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-new.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-new.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-new.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/chap_ms.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/chap_ms.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/chap_ms.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/demand.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/demand.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/demand.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/eap.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/eap.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/eap.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/ecp.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/ecp.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/ecp.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/eui64.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/eui64.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/eui64.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/fsm.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/fsm.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/fsm.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/ipcp.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/ipcp.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/ipcp.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/ipv6cp.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/ipv6cp.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/ipv6cp.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/lcp.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/lcp.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/lcp.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/magic.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/magic.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/magic.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/mppe.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/mppe.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/mppe.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/multilink.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/multilink.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/multilink.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/ppp.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/ppp.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/ppp.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppapi.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppapi.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppapi.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppcrypt.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppcrypt.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppcrypt.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppoe.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppoe.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppoe.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppol2tp.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppol2tp.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppol2tp.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppos.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppos.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/pppos.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/upap.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/upap.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/upap.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/utils.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/utils.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/utils.su ./Middlewares/Third_Party/LwIP/src/netif/ppp/vj.d ./Middlewares/Third_Party/LwIP/src/netif/ppp/vj.o ./Middlewares/Third_Party/LwIP/src/netif/ppp/vj.su
+
+.PHONY: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-netif-2f-ppp
+
diff --git a/Debug/Middlewares/Third_Party/LwIP/src/netif/subdir.mk b/Debug/Middlewares/Third_Party/LwIP/src/netif/subdir.mk
new file mode 100644
index 0000000..42752df
--- /dev/null
+++ b/Debug/Middlewares/Third_Party/LwIP/src/netif/subdir.mk
@@ -0,0 +1,48 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Middlewares/Third_Party/LwIP/src/netif/bridgeif.c \
+../Middlewares/Third_Party/LwIP/src/netif/bridgeif_fdb.c \
+../Middlewares/Third_Party/LwIP/src/netif/ethernet.c \
+../Middlewares/Third_Party/LwIP/src/netif/lowpan6.c \
+../Middlewares/Third_Party/LwIP/src/netif/lowpan6_ble.c \
+../Middlewares/Third_Party/LwIP/src/netif/lowpan6_common.c \
+../Middlewares/Third_Party/LwIP/src/netif/slipif.c \
+../Middlewares/Third_Party/LwIP/src/netif/zepif.c
+
+OBJS += \
+./Middlewares/Third_Party/LwIP/src/netif/bridgeif.o \
+./Middlewares/Third_Party/LwIP/src/netif/bridgeif_fdb.o \
+./Middlewares/Third_Party/LwIP/src/netif/ethernet.o \
+./Middlewares/Third_Party/LwIP/src/netif/lowpan6.o \
+./Middlewares/Third_Party/LwIP/src/netif/lowpan6_ble.o \
+./Middlewares/Third_Party/LwIP/src/netif/lowpan6_common.o \
+./Middlewares/Third_Party/LwIP/src/netif/slipif.o \
+./Middlewares/Third_Party/LwIP/src/netif/zepif.o
+
+C_DEPS += \
+./Middlewares/Third_Party/LwIP/src/netif/bridgeif.d \
+./Middlewares/Third_Party/LwIP/src/netif/bridgeif_fdb.d \
+./Middlewares/Third_Party/LwIP/src/netif/ethernet.d \
+./Middlewares/Third_Party/LwIP/src/netif/lowpan6.d \
+./Middlewares/Third_Party/LwIP/src/netif/lowpan6_ble.d \
+./Middlewares/Third_Party/LwIP/src/netif/lowpan6_common.d \
+./Middlewares/Third_Party/LwIP/src/netif/slipif.d \
+./Middlewares/Third_Party/LwIP/src/netif/zepif.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Middlewares/Third_Party/LwIP/src/netif/%.o Middlewares/Third_Party/LwIP/src/netif/%.su: ../Middlewares/Third_Party/LwIP/src/netif/%.c Middlewares/Third_Party/LwIP/src/netif/subdir.mk
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -I../LWIP/App -I../LWIP/Target -I../Middlewares/Third_Party/LwIP/src/include -I../Middlewares/Third_Party/LwIP/system -I../Drivers/BSP/Components/dp83848 -I../Middlewares/Third_Party/LwIP/src/include/netif/ppp -I../Middlewares/Third_Party/LwIP/src/include/lwip -I../Middlewares/Third_Party/LwIP/src/include/lwip/apps -I../Middlewares/Third_Party/LwIP/src/include/lwip/priv -I../Middlewares/Third_Party/LwIP/src/include/lwip/prot -I../Middlewares/Third_Party/LwIP/src/include/netif -I../Middlewares/Third_Party/LwIP/src/include/compat/posix -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/net -I../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys -I../Middlewares/Third_Party/LwIP/src/include/compat/stdc -I../Middlewares/Third_Party/LwIP/system/arch -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
+clean: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-netif
+
+clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-netif:
+ -$(RM) ./Middlewares/Third_Party/LwIP/src/netif/bridgeif.d ./Middlewares/Third_Party/LwIP/src/netif/bridgeif.o ./Middlewares/Third_Party/LwIP/src/netif/bridgeif.su ./Middlewares/Third_Party/LwIP/src/netif/bridgeif_fdb.d ./Middlewares/Third_Party/LwIP/src/netif/bridgeif_fdb.o ./Middlewares/Third_Party/LwIP/src/netif/bridgeif_fdb.su ./Middlewares/Third_Party/LwIP/src/netif/ethernet.d ./Middlewares/Third_Party/LwIP/src/netif/ethernet.o ./Middlewares/Third_Party/LwIP/src/netif/ethernet.su ./Middlewares/Third_Party/LwIP/src/netif/lowpan6.d ./Middlewares/Third_Party/LwIP/src/netif/lowpan6.o ./Middlewares/Third_Party/LwIP/src/netif/lowpan6.su ./Middlewares/Third_Party/LwIP/src/netif/lowpan6_ble.d ./Middlewares/Third_Party/LwIP/src/netif/lowpan6_ble.o ./Middlewares/Third_Party/LwIP/src/netif/lowpan6_ble.su ./Middlewares/Third_Party/LwIP/src/netif/lowpan6_common.d ./Middlewares/Third_Party/LwIP/src/netif/lowpan6_common.o ./Middlewares/Third_Party/LwIP/src/netif/lowpan6_common.su ./Middlewares/Third_Party/LwIP/src/netif/slipif.d ./Middlewares/Third_Party/LwIP/src/netif/slipif.o ./Middlewares/Third_Party/LwIP/src/netif/slipif.su ./Middlewares/Third_Party/LwIP/src/netif/zepif.d ./Middlewares/Third_Party/LwIP/src/netif/zepif.o ./Middlewares/Third_Party/LwIP/src/netif/zepif.su
+
+.PHONY: clean-Middlewares-2f-Third_Party-2f-LwIP-2f-src-2f-netif
+
diff --git a/Debug/Startup/subdir.mk b/Debug/Startup/subdir.mk
new file mode 100644
index 0000000..aa4bb2e
--- /dev/null
+++ b/Debug/Startup/subdir.mk
@@ -0,0 +1,27 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+S_SRCS += \
+../Startup/startup_stm32f429zitx.s
+
+OBJS += \
+./Startup/startup_stm32f429zitx.o
+
+S_DEPS += \
+./Startup/startup_stm32f429zitx.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Startup/%.o: ../Startup/%.s Startup/subdir.mk
+ arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -DDEBUG -c -x assembler-with-cpp -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" "$<"
+
+clean: clean-Startup
+
+clean-Startup:
+ -$(RM) ./Startup/startup_stm32f429zitx.d ./Startup/startup_stm32f429zitx.o
+
+.PHONY: clean-Startup
+
diff --git a/Debug/makefile b/Debug/makefile
new file mode 100644
index 0000000..65f66f1
--- /dev/null
+++ b/Debug/makefile
@@ -0,0 +1,104 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+-include ../makefile.init
+
+RM := rm -rf
+
+# All of the sources participating in the build are defined here
+-include sources.mk
+-include Middlewares/Third_Party/LwIP/src/netif/ppp/subdir.mk
+-include Middlewares/Third_Party/LwIP/src/netif/subdir.mk
+-include Middlewares/Third_Party/LwIP/src/core/ipv6/subdir.mk
+-include Middlewares/Third_Party/LwIP/src/core/ipv4/subdir.mk
+-include Middlewares/Third_Party/LwIP/src/core/subdir.mk
+-include Middlewares/Third_Party/LwIP/src/apps/mqtt/subdir.mk
+-include Middlewares/Third_Party/LwIP/src/api/subdir.mk
+-include LWIP/Target/subdir.mk
+-include LWIP/App/subdir.mk
+-include Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk
+-include Drivers/BSP/Components/dp83848/subdir.mk
+-include Core/Startup/subdir.mk
+-include Core/Src/subdir.mk
+-include objects.mk
+
+ifneq ($(MAKECMDGOALS),clean)
+ifneq ($(strip $(S_DEPS)),)
+-include $(S_DEPS)
+endif
+ifneq ($(strip $(S_UPPER_DEPS)),)
+-include $(S_UPPER_DEPS)
+endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
+endif
+
+-include ../makefile.defs
+
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := yau-07b
+BUILD_ARTIFACT_EXTENSION := elf
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
+# Add inputs and outputs from these tool invocations to the build variables
+EXECUTABLES += \
+yau-07b.elf \
+
+MAP_FILES += \
+yau-07b.map \
+
+SIZE_OUTPUT += \
+default.size.stdout \
+
+OBJDUMP_LIST += \
+yau-07b.list \
+
+
+# All Target
+all: main-build
+
+# Main-build Target
+main-build: yau-07b.elf secondary-outputs
+
+# Tool invocations
+yau-07b.elf yau-07b.map: $(OBJS) $(USER_OBJS) D:\Work\CubeMX\ Projects\yau-07b\STM32F429ZITX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
+ arm-none-eabi-gcc -o "yau-07b.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\Work\CubeMX Projects\yau-07b\STM32F429ZITX_FLASH.ld" --specs=nosys.specs -Wl,-Map="yau-07b.map" -Wl,--gc-sections -static -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
+ @echo 'Finished building target: $@'
+ @echo ' '
+
+default.size.stdout: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS)
+ arm-none-eabi-size $(EXECUTABLES)
+ @echo 'Finished building: $@'
+ @echo ' '
+
+yau-07b.list: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS)
+ arm-none-eabi-objdump -h -S $(EXECUTABLES) > "yau-07b.list"
+ @echo 'Finished building: $@'
+ @echo ' '
+
+# Other Targets
+clean:
+ -$(RM) default.size.stdout yau-07b.elf yau-07b.list yau-07b.map
+ -@echo ' '
+
+secondary-outputs: $(SIZE_OUTPUT) $(OBJDUMP_LIST)
+
+fail-specified-linker-script-missing:
+ @echo 'Error: Cannot find the specified linker script. Check the linker settings in the build configuration.'
+ @exit 2
+
+warn-no-linker-script-specified:
+ @echo 'Warning: No linker script specified. Check the linker settings in the build configuration.'
+
+.PHONY: all clean dependents main-build fail-specified-linker-script-missing warn-no-linker-script-specified
+
+-include ../makefile.targets
diff --git a/Debug/objects.list b/Debug/objects.list
new file mode 100644
index 0000000..b8fa5c7
--- /dev/null
+++ b/Debug/objects.list
@@ -0,0 +1,104 @@
+"./Core/Src/main.o"
+"./Core/Src/stm32f4xx_hal_msp.o"
+"./Core/Src/stm32f4xx_it.o"
+"./Core/Src/system_stm32f4xx.o"
+"./Core/Startup/startup_stm32f429zitx.o"
+"./Drivers/BSP/Components/dp83848/dp83848.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o"
+"./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o"
+"./LWIP/App/lwip.o"
+"./LWIP/Target/ethernetif.o"
+"./Middlewares/Third_Party/LwIP/src/api/api_lib.o"
+"./Middlewares/Third_Party/LwIP/src/api/api_msg.o"
+"./Middlewares/Third_Party/LwIP/src/api/err.o"
+"./Middlewares/Third_Party/LwIP/src/api/if_api.o"
+"./Middlewares/Third_Party/LwIP/src/api/netbuf.o"
+"./Middlewares/Third_Party/LwIP/src/api/netdb.o"
+"./Middlewares/Third_Party/LwIP/src/api/netifapi.o"
+"./Middlewares/Third_Party/LwIP/src/api/sockets.o"
+"./Middlewares/Third_Party/LwIP/src/api/tcpip.o"
+"./Middlewares/Third_Party/LwIP/src/apps/mqtt/mqtt.o"
+"./Middlewares/Third_Party/LwIP/src/core/altcp.o"
+"./Middlewares/Third_Party/LwIP/src/core/altcp_alloc.o"
+"./Middlewares/Third_Party/LwIP/src/core/altcp_tcp.o"
+"./Middlewares/Third_Party/LwIP/src/core/def.o"
+"./Middlewares/Third_Party/LwIP/src/core/dns.o"
+"./Middlewares/Third_Party/LwIP/src/core/inet_chksum.o"
+"./Middlewares/Third_Party/LwIP/src/core/init.o"
+"./Middlewares/Third_Party/LwIP/src/core/ip.o"
+"./Middlewares/Third_Party/LwIP/src/core/mem.o"
+"./Middlewares/Third_Party/LwIP/src/core/memp.o"
+"./Middlewares/Third_Party/LwIP/src/core/netif.o"
+"./Middlewares/Third_Party/LwIP/src/core/pbuf.o"
+"./Middlewares/Third_Party/LwIP/src/core/raw.o"
+"./Middlewares/Third_Party/LwIP/src/core/stats.o"
+"./Middlewares/Third_Party/LwIP/src/core/sys.o"
+"./Middlewares/Third_Party/LwIP/src/core/tcp.o"
+"./Middlewares/Third_Party/LwIP/src/core/tcp_in.o"
+"./Middlewares/Third_Party/LwIP/src/core/tcp_out.o"
+"./Middlewares/Third_Party/LwIP/src/core/timeouts.o"
+"./Middlewares/Third_Party/LwIP/src/core/udp.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv4/autoip.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv4/dhcp.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv4/etharp.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv4/icmp.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv4/igmp.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_addr.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv4/ip4_frag.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv6/dhcp6.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv6/ethip6.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv6/icmp6.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv6/inet6.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_addr.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv6/ip6_frag.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv6/mld6.o"
+"./Middlewares/Third_Party/LwIP/src/core/ipv6/nd6.o"
+"./Middlewares/Third_Party/LwIP/src/netif/bridgeif.o"
+"./Middlewares/Third_Party/LwIP/src/netif/bridgeif_fdb.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ethernet.o"
+"./Middlewares/Third_Party/LwIP/src/netif/lowpan6.o"
+"./Middlewares/Third_Party/LwIP/src/netif/lowpan6_ble.o"
+"./Middlewares/Third_Party/LwIP/src/netif/lowpan6_common.o"
+"./Middlewares/Third_Party/LwIP/src/netif/slipif.o"
+"./Middlewares/Third_Party/LwIP/src/netif/zepif.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/auth.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/ccp.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-md5.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/chap-new.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/chap_ms.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/demand.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/eap.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/ecp.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/eui64.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/fsm.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/ipcp.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/ipv6cp.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/lcp.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/magic.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/mppe.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/multilink.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/ppp.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/pppapi.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/pppcrypt.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/pppoe.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/pppol2tp.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/pppos.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/upap.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/utils.o"
+"./Middlewares/Third_Party/LwIP/src/netif/ppp/vj.o"
diff --git a/Debug/objects.mk b/Debug/objects.mk
new file mode 100644
index 0000000..e423e31
--- /dev/null
+++ b/Debug/objects.mk
@@ -0,0 +1,9 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+USER_OBJS :=
+
+LIBS :=
+
diff --git a/Debug/sources.mk b/Debug/sources.mk
new file mode 100644
index 0000000..9810347
--- /dev/null
+++ b/Debug/sources.mk
@@ -0,0 +1,37 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (10.3-2021.10)
+################################################################################
+
+ELF_SRCS :=
+OBJ_SRCS :=
+S_SRCS :=
+C_SRCS :=
+S_UPPER_SRCS :=
+O_SRCS :=
+SIZE_OUTPUT :=
+OBJDUMP_LIST :=
+SU_FILES :=
+EXECUTABLES :=
+OBJS :=
+MAP_FILES :=
+S_DEPS :=
+S_UPPER_DEPS :=
+C_DEPS :=
+
+# Every subdirectory with source files must be described here
+SUBDIRS := \
+Core/Src \
+Core/Startup \
+Drivers/BSP/Components/dp83848 \
+Drivers/STM32F4xx_HAL_Driver/Src \
+LWIP/App \
+LWIP/Target \
+Middlewares/Third_Party/LwIP/src/api \
+Middlewares/Third_Party/LwIP/src/apps/mqtt \
+Middlewares/Third_Party/LwIP/src/core \
+Middlewares/Third_Party/LwIP/src/core/ipv4 \
+Middlewares/Third_Party/LwIP/src/core/ipv6 \
+Middlewares/Third_Party/LwIP/src/netif \
+Middlewares/Third_Party/LwIP/src/netif/ppp \
+
diff --git a/Debug/yau-07b.list b/Debug/yau-07b.list
new file mode 100644
index 0000000..3ce15d1
--- /dev/null
+++ b/Debug/yau-07b.list
@@ -0,0 +1,49152 @@
+
+yau-07b.elf: file format elf32-littlearm
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .isr_vector 000001ac 08000000 08000000 00010000 2**0
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 1 .text 00014800 080001b0 080001b0 000101b0 2**4
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .rodata 000032c4 080149b0 080149b0 000249b0 2**3
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 3 .ARM.extab 00000000 08017c74 08017c74 000309e0 2**0
+ CONTENTS
+ 4 .ARM 00000008 08017c74 08017c74 00027c74 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 5 .preinit_array 00000000 08017c7c 08017c7c 000309e0 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 6 .init_array 00000008 08017c7c 08017c7c 00027c7c 2**2
+ CONTENTS, ALLOC, LOAD, DATA
+ 7 .fini_array 00000004 08017c84 08017c84 00027c84 2**2
+ CONTENTS, ALLOC, LOAD, DATA
+ 8 .data 000009e0 20000000 08017c88 00030000 2**3
+ CONTENTS, ALLOC, LOAD, DATA
+ 9 .ccmram 00000000 10000000 10000000 000309e0 2**0
+ CONTENTS
+ 10 .bss 0000839c 200009e0 200009e0 000309e0 2**2
+ ALLOC
+ 11 ._user_heap_stack 00000604 20008d7c 20008d7c 000309e0 2**0
+ ALLOC
+ 12 .ARM.attributes 00000030 00000000 00000000 000309e0 2**0
+ CONTENTS, READONLY
+ 13 .debug_info 00018d19 00000000 00000000 00030a10 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 14 .debug_abbrev 0000484f 00000000 00000000 00049729 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 15 .debug_aranges 000011c8 00000000 00000000 0004df78 2**3
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 16 .debug_ranges 00001148 00000000 00000000 0004f140 2**3
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 17 .debug_macro 0002dfa9 00000000 00000000 00050288 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 18 .debug_line 0001e3d9 00000000 00000000 0007e231 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 19 .debug_str 000e7bec 00000000 00000000 0009c60a 2**0
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 20 .comment 00000050 00000000 00000000 001841f6 2**0
+ CONTENTS, READONLY
+ 21 .debug_frame 00005abc 00000000 00000000 00184248 2**2
+ CONTENTS, READONLY, DEBUGGING, OCTETS
+ 22 .stab 000000cc 00000000 00000000 00189d04 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 23 .stabstr 000001b9 00000000 00000000 00189dd0 2**0
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+080001b0 <__do_global_dtors_aux>:
+ 80001b0: b510 push {r4, lr}
+ 80001b2: 4c05 ldr r4, [pc, #20] ; (80001c8 <__do_global_dtors_aux+0x18>)
+ 80001b4: 7823 ldrb r3, [r4, #0]
+ 80001b6: b933 cbnz r3, 80001c6 <__do_global_dtors_aux+0x16>
+ 80001b8: 4b04 ldr r3, [pc, #16] ; (80001cc <__do_global_dtors_aux+0x1c>)
+ 80001ba: b113 cbz r3, 80001c2 <__do_global_dtors_aux+0x12>
+ 80001bc: 4804 ldr r0, [pc, #16] ; (80001d0 <__do_global_dtors_aux+0x20>)
+ 80001be: f3af 8000 nop.w
+ 80001c2: 2301 movs r3, #1
+ 80001c4: 7023 strb r3, [r4, #0]
+ 80001c6: bd10 pop {r4, pc}
+ 80001c8: 200009e0 .word 0x200009e0
+ 80001cc: 00000000 .word 0x00000000
+ 80001d0: 08014998 .word 0x08014998
+
+080001d4 :
+ 80001d4: b508 push {r3, lr}
+ 80001d6: 4b03 ldr r3, [pc, #12] ; (80001e4 )
+ 80001d8: b11b cbz r3, 80001e2
+ 80001da: 4903 ldr r1, [pc, #12] ; (80001e8 )
+ 80001dc: 4803 ldr r0, [pc, #12] ; (80001ec )
+ 80001de: f3af 8000 nop.w
+ 80001e2: bd08 pop {r3, pc}
+ 80001e4: 00000000 .word 0x00000000
+ 80001e8: 200009e4 .word 0x200009e4
+ 80001ec: 08014998 .word 0x08014998
+
+080001f0 :
+ 80001f0: 4603 mov r3, r0
+ 80001f2: f813 2b01 ldrb.w r2, [r3], #1
+ 80001f6: 2a00 cmp r2, #0
+ 80001f8: d1fb bne.n 80001f2
+ 80001fa: 1a18 subs r0, r3, r0
+ 80001fc: 3801 subs r0, #1
+ 80001fe: 4770 bx lr
+
+08000200 :
+ 8000200: f001 01ff and.w r1, r1, #255 ; 0xff
+ 8000204: 2a10 cmp r2, #16
+ 8000206: db2b blt.n 8000260
+ 8000208: f010 0f07 tst.w r0, #7
+ 800020c: d008 beq.n 8000220
+ 800020e: f810 3b01 ldrb.w r3, [r0], #1
+ 8000212: 3a01 subs r2, #1
+ 8000214: 428b cmp r3, r1
+ 8000216: d02d beq.n 8000274
+ 8000218: f010 0f07 tst.w r0, #7
+ 800021c: b342 cbz r2, 8000270
+ 800021e: d1f6 bne.n 800020e
+ 8000220: b4f0 push {r4, r5, r6, r7}
+ 8000222: ea41 2101 orr.w r1, r1, r1, lsl #8
+ 8000226: ea41 4101 orr.w r1, r1, r1, lsl #16
+ 800022a: f022 0407 bic.w r4, r2, #7
+ 800022e: f07f 0700 mvns.w r7, #0
+ 8000232: 2300 movs r3, #0
+ 8000234: e8f0 5602 ldrd r5, r6, [r0], #8
+ 8000238: 3c08 subs r4, #8
+ 800023a: ea85 0501 eor.w r5, r5, r1
+ 800023e: ea86 0601 eor.w r6, r6, r1
+ 8000242: fa85 f547 uadd8 r5, r5, r7
+ 8000246: faa3 f587 sel r5, r3, r7
+ 800024a: fa86 f647 uadd8 r6, r6, r7
+ 800024e: faa5 f687 sel r6, r5, r7
+ 8000252: b98e cbnz r6, 8000278
+ 8000254: d1ee bne.n 8000234
+ 8000256: bcf0 pop {r4, r5, r6, r7}
+ 8000258: f001 01ff and.w r1, r1, #255 ; 0xff
+ 800025c: f002 0207 and.w r2, r2, #7
+ 8000260: b132 cbz r2, 8000270
+ 8000262: f810 3b01 ldrb.w r3, [r0], #1
+ 8000266: 3a01 subs r2, #1
+ 8000268: ea83 0301 eor.w r3, r3, r1
+ 800026c: b113 cbz r3, 8000274
+ 800026e: d1f8 bne.n 8000262
+ 8000270: 2000 movs r0, #0
+ 8000272: 4770 bx lr
+ 8000274: 3801 subs r0, #1
+ 8000276: 4770 bx lr
+ 8000278: 2d00 cmp r5, #0
+ 800027a: bf06 itte eq
+ 800027c: 4635 moveq r5, r6
+ 800027e: 3803 subeq r0, #3
+ 8000280: 3807 subne r0, #7
+ 8000282: f015 0f01 tst.w r5, #1
+ 8000286: d107 bne.n 8000298
+ 8000288: 3001 adds r0, #1
+ 800028a: f415 7f80 tst.w r5, #256 ; 0x100
+ 800028e: bf02 ittt eq
+ 8000290: 3001 addeq r0, #1
+ 8000292: f415 3fc0 tsteq.w r5, #98304 ; 0x18000
+ 8000296: 3001 addeq r0, #1
+ 8000298: bcf0 pop {r4, r5, r6, r7}
+ 800029a: 3801 subs r0, #1
+ 800029c: 4770 bx lr
+ 800029e: bf00 nop
+
+080002a0 <__aeabi_drsub>:
+ 80002a0: f081 4100 eor.w r1, r1, #2147483648 ; 0x80000000
+ 80002a4: e002 b.n 80002ac <__adddf3>
+ 80002a6: bf00 nop
+
+080002a8 <__aeabi_dsub>:
+ 80002a8: f083 4300 eor.w r3, r3, #2147483648 ; 0x80000000
+
+080002ac <__adddf3>:
+ 80002ac: b530 push {r4, r5, lr}
+ 80002ae: ea4f 0441 mov.w r4, r1, lsl #1
+ 80002b2: ea4f 0543 mov.w r5, r3, lsl #1
+ 80002b6: ea94 0f05 teq r4, r5
+ 80002ba: bf08 it eq
+ 80002bc: ea90 0f02 teqeq r0, r2
+ 80002c0: bf1f itttt ne
+ 80002c2: ea54 0c00 orrsne.w ip, r4, r0
+ 80002c6: ea55 0c02 orrsne.w ip, r5, r2
+ 80002ca: ea7f 5c64 mvnsne.w ip, r4, asr #21
+ 80002ce: ea7f 5c65 mvnsne.w ip, r5, asr #21
+ 80002d2: f000 80e2 beq.w 800049a <__adddf3+0x1ee>
+ 80002d6: ea4f 5454 mov.w r4, r4, lsr #21
+ 80002da: ebd4 5555 rsbs r5, r4, r5, lsr #21
+ 80002de: bfb8 it lt
+ 80002e0: 426d neglt r5, r5
+ 80002e2: dd0c ble.n 80002fe <__adddf3+0x52>
+ 80002e4: 442c add r4, r5
+ 80002e6: ea80 0202 eor.w r2, r0, r2
+ 80002ea: ea81 0303 eor.w r3, r1, r3
+ 80002ee: ea82 0000 eor.w r0, r2, r0
+ 80002f2: ea83 0101 eor.w r1, r3, r1
+ 80002f6: ea80 0202 eor.w r2, r0, r2
+ 80002fa: ea81 0303 eor.w r3, r1, r3
+ 80002fe: 2d36 cmp r5, #54 ; 0x36
+ 8000300: bf88 it hi
+ 8000302: bd30 pophi {r4, r5, pc}
+ 8000304: f011 4f00 tst.w r1, #2147483648 ; 0x80000000
+ 8000308: ea4f 3101 mov.w r1, r1, lsl #12
+ 800030c: f44f 1c80 mov.w ip, #1048576 ; 0x100000
+ 8000310: ea4c 3111 orr.w r1, ip, r1, lsr #12
+ 8000314: d002 beq.n 800031c <__adddf3+0x70>
+ 8000316: 4240 negs r0, r0
+ 8000318: eb61 0141 sbc.w r1, r1, r1, lsl #1
+ 800031c: f013 4f00 tst.w r3, #2147483648 ; 0x80000000
+ 8000320: ea4f 3303 mov.w r3, r3, lsl #12
+ 8000324: ea4c 3313 orr.w r3, ip, r3, lsr #12
+ 8000328: d002 beq.n 8000330 <__adddf3+0x84>
+ 800032a: 4252 negs r2, r2
+ 800032c: eb63 0343 sbc.w r3, r3, r3, lsl #1
+ 8000330: ea94 0f05 teq r4, r5
+ 8000334: f000 80a7 beq.w 8000486 <__adddf3+0x1da>
+ 8000338: f1a4 0401 sub.w r4, r4, #1
+ 800033c: f1d5 0e20 rsbs lr, r5, #32
+ 8000340: db0d blt.n 800035e <__adddf3+0xb2>
+ 8000342: fa02 fc0e lsl.w ip, r2, lr
+ 8000346: fa22 f205 lsr.w r2, r2, r5
+ 800034a: 1880 adds r0, r0, r2
+ 800034c: f141 0100 adc.w r1, r1, #0
+ 8000350: fa03 f20e lsl.w r2, r3, lr
+ 8000354: 1880 adds r0, r0, r2
+ 8000356: fa43 f305 asr.w r3, r3, r5
+ 800035a: 4159 adcs r1, r3
+ 800035c: e00e b.n 800037c <__adddf3+0xd0>
+ 800035e: f1a5 0520 sub.w r5, r5, #32
+ 8000362: f10e 0e20 add.w lr, lr, #32
+ 8000366: 2a01 cmp r2, #1
+ 8000368: fa03 fc0e lsl.w ip, r3, lr
+ 800036c: bf28 it cs
+ 800036e: f04c 0c02 orrcs.w ip, ip, #2
+ 8000372: fa43 f305 asr.w r3, r3, r5
+ 8000376: 18c0 adds r0, r0, r3
+ 8000378: eb51 71e3 adcs.w r1, r1, r3, asr #31
+ 800037c: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000
+ 8000380: d507 bpl.n 8000392 <__adddf3+0xe6>
+ 8000382: f04f 0e00 mov.w lr, #0
+ 8000386: f1dc 0c00 rsbs ip, ip, #0
+ 800038a: eb7e 0000 sbcs.w r0, lr, r0
+ 800038e: eb6e 0101 sbc.w r1, lr, r1
+ 8000392: f5b1 1f80 cmp.w r1, #1048576 ; 0x100000
+ 8000396: d31b bcc.n 80003d0 <__adddf3+0x124>
+ 8000398: f5b1 1f00 cmp.w r1, #2097152 ; 0x200000
+ 800039c: d30c bcc.n 80003b8 <__adddf3+0x10c>
+ 800039e: 0849 lsrs r1, r1, #1
+ 80003a0: ea5f 0030 movs.w r0, r0, rrx
+ 80003a4: ea4f 0c3c mov.w ip, ip, rrx
+ 80003a8: f104 0401 add.w r4, r4, #1
+ 80003ac: ea4f 5244 mov.w r2, r4, lsl #21
+ 80003b0: f512 0f80 cmn.w r2, #4194304 ; 0x400000
+ 80003b4: f080 809a bcs.w 80004ec <__adddf3+0x240>
+ 80003b8: f1bc 4f00 cmp.w ip, #2147483648 ; 0x80000000
+ 80003bc: bf08 it eq
+ 80003be: ea5f 0c50 movseq.w ip, r0, lsr #1
+ 80003c2: f150 0000 adcs.w r0, r0, #0
+ 80003c6: eb41 5104 adc.w r1, r1, r4, lsl #20
+ 80003ca: ea41 0105 orr.w r1, r1, r5
+ 80003ce: bd30 pop {r4, r5, pc}
+ 80003d0: ea5f 0c4c movs.w ip, ip, lsl #1
+ 80003d4: 4140 adcs r0, r0
+ 80003d6: eb41 0101 adc.w r1, r1, r1
+ 80003da: 3c01 subs r4, #1
+ 80003dc: bf28 it cs
+ 80003de: f5b1 1f80 cmpcs.w r1, #1048576 ; 0x100000
+ 80003e2: d2e9 bcs.n 80003b8 <__adddf3+0x10c>
+ 80003e4: f091 0f00 teq r1, #0
+ 80003e8: bf04 itt eq
+ 80003ea: 4601 moveq r1, r0
+ 80003ec: 2000 moveq r0, #0
+ 80003ee: fab1 f381 clz r3, r1
+ 80003f2: bf08 it eq
+ 80003f4: 3320 addeq r3, #32
+ 80003f6: f1a3 030b sub.w r3, r3, #11
+ 80003fa: f1b3 0220 subs.w r2, r3, #32
+ 80003fe: da0c bge.n 800041a <__adddf3+0x16e>
+ 8000400: 320c adds r2, #12
+ 8000402: dd08 ble.n 8000416 <__adddf3+0x16a>
+ 8000404: f102 0c14 add.w ip, r2, #20
+ 8000408: f1c2 020c rsb r2, r2, #12
+ 800040c: fa01 f00c lsl.w r0, r1, ip
+ 8000410: fa21 f102 lsr.w r1, r1, r2
+ 8000414: e00c b.n 8000430 <__adddf3+0x184>
+ 8000416: f102 0214 add.w r2, r2, #20
+ 800041a: bfd8 it le
+ 800041c: f1c2 0c20 rsble ip, r2, #32
+ 8000420: fa01 f102 lsl.w r1, r1, r2
+ 8000424: fa20 fc0c lsr.w ip, r0, ip
+ 8000428: bfdc itt le
+ 800042a: ea41 010c orrle.w r1, r1, ip
+ 800042e: 4090 lslle r0, r2
+ 8000430: 1ae4 subs r4, r4, r3
+ 8000432: bfa2 ittt ge
+ 8000434: eb01 5104 addge.w r1, r1, r4, lsl #20
+ 8000438: 4329 orrge r1, r5
+ 800043a: bd30 popge {r4, r5, pc}
+ 800043c: ea6f 0404 mvn.w r4, r4
+ 8000440: 3c1f subs r4, #31
+ 8000442: da1c bge.n 800047e <__adddf3+0x1d2>
+ 8000444: 340c adds r4, #12
+ 8000446: dc0e bgt.n 8000466 <__adddf3+0x1ba>
+ 8000448: f104 0414 add.w r4, r4, #20
+ 800044c: f1c4 0220 rsb r2, r4, #32
+ 8000450: fa20 f004 lsr.w r0, r0, r4
+ 8000454: fa01 f302 lsl.w r3, r1, r2
+ 8000458: ea40 0003 orr.w r0, r0, r3
+ 800045c: fa21 f304 lsr.w r3, r1, r4
+ 8000460: ea45 0103 orr.w r1, r5, r3
+ 8000464: bd30 pop {r4, r5, pc}
+ 8000466: f1c4 040c rsb r4, r4, #12
+ 800046a: f1c4 0220 rsb r2, r4, #32
+ 800046e: fa20 f002 lsr.w r0, r0, r2
+ 8000472: fa01 f304 lsl.w r3, r1, r4
+ 8000476: ea40 0003 orr.w r0, r0, r3
+ 800047a: 4629 mov r1, r5
+ 800047c: bd30 pop {r4, r5, pc}
+ 800047e: fa21 f004 lsr.w r0, r1, r4
+ 8000482: 4629 mov r1, r5
+ 8000484: bd30 pop {r4, r5, pc}
+ 8000486: f094 0f00 teq r4, #0
+ 800048a: f483 1380 eor.w r3, r3, #1048576 ; 0x100000
+ 800048e: bf06 itte eq
+ 8000490: f481 1180 eoreq.w r1, r1, #1048576 ; 0x100000
+ 8000494: 3401 addeq r4, #1
+ 8000496: 3d01 subne r5, #1
+ 8000498: e74e b.n 8000338 <__adddf3+0x8c>
+ 800049a: ea7f 5c64 mvns.w ip, r4, asr #21
+ 800049e: bf18 it ne
+ 80004a0: ea7f 5c65 mvnsne.w ip, r5, asr #21
+ 80004a4: d029 beq.n 80004fa <__adddf3+0x24e>
+ 80004a6: ea94 0f05 teq r4, r5
+ 80004aa: bf08 it eq
+ 80004ac: ea90 0f02 teqeq r0, r2
+ 80004b0: d005 beq.n 80004be <__adddf3+0x212>
+ 80004b2: ea54 0c00 orrs.w ip, r4, r0
+ 80004b6: bf04 itt eq
+ 80004b8: 4619 moveq r1, r3
+ 80004ba: 4610 moveq r0, r2
+ 80004bc: bd30 pop {r4, r5, pc}
+ 80004be: ea91 0f03 teq r1, r3
+ 80004c2: bf1e ittt ne
+ 80004c4: 2100 movne r1, #0
+ 80004c6: 2000 movne r0, #0
+ 80004c8: bd30 popne {r4, r5, pc}
+ 80004ca: ea5f 5c54 movs.w ip, r4, lsr #21
+ 80004ce: d105 bne.n 80004dc <__adddf3+0x230>
+ 80004d0: 0040 lsls r0, r0, #1
+ 80004d2: 4149 adcs r1, r1
+ 80004d4: bf28 it cs
+ 80004d6: f041 4100 orrcs.w r1, r1, #2147483648 ; 0x80000000
+ 80004da: bd30 pop {r4, r5, pc}
+ 80004dc: f514 0480 adds.w r4, r4, #4194304 ; 0x400000
+ 80004e0: bf3c itt cc
+ 80004e2: f501 1180 addcc.w r1, r1, #1048576 ; 0x100000
+ 80004e6: bd30 popcc {r4, r5, pc}
+ 80004e8: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000
+ 80004ec: f045 41fe orr.w r1, r5, #2130706432 ; 0x7f000000
+ 80004f0: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000
+ 80004f4: f04f 0000 mov.w r0, #0
+ 80004f8: bd30 pop {r4, r5, pc}
+ 80004fa: ea7f 5c64 mvns.w ip, r4, asr #21
+ 80004fe: bf1a itte ne
+ 8000500: 4619 movne r1, r3
+ 8000502: 4610 movne r0, r2
+ 8000504: ea7f 5c65 mvnseq.w ip, r5, asr #21
+ 8000508: bf1c itt ne
+ 800050a: 460b movne r3, r1
+ 800050c: 4602 movne r2, r0
+ 800050e: ea50 3401 orrs.w r4, r0, r1, lsl #12
+ 8000512: bf06 itte eq
+ 8000514: ea52 3503 orrseq.w r5, r2, r3, lsl #12
+ 8000518: ea91 0f03 teqeq r1, r3
+ 800051c: f441 2100 orrne.w r1, r1, #524288 ; 0x80000
+ 8000520: bd30 pop {r4, r5, pc}
+ 8000522: bf00 nop
+
+08000524 <__aeabi_ui2d>:
+ 8000524: f090 0f00 teq r0, #0
+ 8000528: bf04 itt eq
+ 800052a: 2100 moveq r1, #0
+ 800052c: 4770 bxeq lr
+ 800052e: b530 push {r4, r5, lr}
+ 8000530: f44f 6480 mov.w r4, #1024 ; 0x400
+ 8000534: f104 0432 add.w r4, r4, #50 ; 0x32
+ 8000538: f04f 0500 mov.w r5, #0
+ 800053c: f04f 0100 mov.w r1, #0
+ 8000540: e750 b.n 80003e4 <__adddf3+0x138>
+ 8000542: bf00 nop
+
+08000544 <__aeabi_i2d>:
+ 8000544: f090 0f00 teq r0, #0
+ 8000548: bf04 itt eq
+ 800054a: 2100 moveq r1, #0
+ 800054c: 4770 bxeq lr
+ 800054e: b530 push {r4, r5, lr}
+ 8000550: f44f 6480 mov.w r4, #1024 ; 0x400
+ 8000554: f104 0432 add.w r4, r4, #50 ; 0x32
+ 8000558: f010 4500 ands.w r5, r0, #2147483648 ; 0x80000000
+ 800055c: bf48 it mi
+ 800055e: 4240 negmi r0, r0
+ 8000560: f04f 0100 mov.w r1, #0
+ 8000564: e73e b.n 80003e4 <__adddf3+0x138>
+ 8000566: bf00 nop
+
+08000568 <__aeabi_f2d>:
+ 8000568: 0042 lsls r2, r0, #1
+ 800056a: ea4f 01e2 mov.w r1, r2, asr #3
+ 800056e: ea4f 0131 mov.w r1, r1, rrx
+ 8000572: ea4f 7002 mov.w r0, r2, lsl #28
+ 8000576: bf1f itttt ne
+ 8000578: f012 437f andsne.w r3, r2, #4278190080 ; 0xff000000
+ 800057c: f093 4f7f teqne r3, #4278190080 ; 0xff000000
+ 8000580: f081 5160 eorne.w r1, r1, #939524096 ; 0x38000000
+ 8000584: 4770 bxne lr
+ 8000586: f032 427f bics.w r2, r2, #4278190080 ; 0xff000000
+ 800058a: bf08 it eq
+ 800058c: 4770 bxeq lr
+ 800058e: f093 4f7f teq r3, #4278190080 ; 0xff000000
+ 8000592: bf04 itt eq
+ 8000594: f441 2100 orreq.w r1, r1, #524288 ; 0x80000
+ 8000598: 4770 bxeq lr
+ 800059a: b530 push {r4, r5, lr}
+ 800059c: f44f 7460 mov.w r4, #896 ; 0x380
+ 80005a0: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000
+ 80005a4: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000
+ 80005a8: e71c b.n 80003e4 <__adddf3+0x138>
+ 80005aa: bf00 nop
+
+080005ac <__aeabi_ul2d>:
+ 80005ac: ea50 0201 orrs.w r2, r0, r1
+ 80005b0: bf08 it eq
+ 80005b2: 4770 bxeq lr
+ 80005b4: b530 push {r4, r5, lr}
+ 80005b6: f04f 0500 mov.w r5, #0
+ 80005ba: e00a b.n 80005d2 <__aeabi_l2d+0x16>
+
+080005bc <__aeabi_l2d>:
+ 80005bc: ea50 0201 orrs.w r2, r0, r1
+ 80005c0: bf08 it eq
+ 80005c2: 4770 bxeq lr
+ 80005c4: b530 push {r4, r5, lr}
+ 80005c6: f011 4500 ands.w r5, r1, #2147483648 ; 0x80000000
+ 80005ca: d502 bpl.n 80005d2 <__aeabi_l2d+0x16>
+ 80005cc: 4240 negs r0, r0
+ 80005ce: eb61 0141 sbc.w r1, r1, r1, lsl #1
+ 80005d2: f44f 6480 mov.w r4, #1024 ; 0x400
+ 80005d6: f104 0432 add.w r4, r4, #50 ; 0x32
+ 80005da: ea5f 5c91 movs.w ip, r1, lsr #22
+ 80005de: f43f aed8 beq.w 8000392 <__adddf3+0xe6>
+ 80005e2: f04f 0203 mov.w r2, #3
+ 80005e6: ea5f 0cdc movs.w ip, ip, lsr #3
+ 80005ea: bf18 it ne
+ 80005ec: 3203 addne r2, #3
+ 80005ee: ea5f 0cdc movs.w ip, ip, lsr #3
+ 80005f2: bf18 it ne
+ 80005f4: 3203 addne r2, #3
+ 80005f6: eb02 02dc add.w r2, r2, ip, lsr #3
+ 80005fa: f1c2 0320 rsb r3, r2, #32
+ 80005fe: fa00 fc03 lsl.w ip, r0, r3
+ 8000602: fa20 f002 lsr.w r0, r0, r2
+ 8000606: fa01 fe03 lsl.w lr, r1, r3
+ 800060a: ea40 000e orr.w r0, r0, lr
+ 800060e: fa21 f102 lsr.w r1, r1, r2
+ 8000612: 4414 add r4, r2
+ 8000614: e6bd b.n 8000392 <__adddf3+0xe6>
+ 8000616: bf00 nop
+
+08000618 <__aeabi_dmul>:
+ 8000618: b570 push {r4, r5, r6, lr}
+ 800061a: f04f 0cff mov.w ip, #255 ; 0xff
+ 800061e: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700
+ 8000622: ea1c 5411 ands.w r4, ip, r1, lsr #20
+ 8000626: bf1d ittte ne
+ 8000628: ea1c 5513 andsne.w r5, ip, r3, lsr #20
+ 800062c: ea94 0f0c teqne r4, ip
+ 8000630: ea95 0f0c teqne r5, ip
+ 8000634: f000 f8de bleq 80007f4 <__aeabi_dmul+0x1dc>
+ 8000638: 442c add r4, r5
+ 800063a: ea81 0603 eor.w r6, r1, r3
+ 800063e: ea21 514c bic.w r1, r1, ip, lsl #21
+ 8000642: ea23 534c bic.w r3, r3, ip, lsl #21
+ 8000646: ea50 3501 orrs.w r5, r0, r1, lsl #12
+ 800064a: bf18 it ne
+ 800064c: ea52 3503 orrsne.w r5, r2, r3, lsl #12
+ 8000650: f441 1180 orr.w r1, r1, #1048576 ; 0x100000
+ 8000654: f443 1380 orr.w r3, r3, #1048576 ; 0x100000
+ 8000658: d038 beq.n 80006cc <__aeabi_dmul+0xb4>
+ 800065a: fba0 ce02 umull ip, lr, r0, r2
+ 800065e: f04f 0500 mov.w r5, #0
+ 8000662: fbe1 e502 umlal lr, r5, r1, r2
+ 8000666: f006 4200 and.w r2, r6, #2147483648 ; 0x80000000
+ 800066a: fbe0 e503 umlal lr, r5, r0, r3
+ 800066e: f04f 0600 mov.w r6, #0
+ 8000672: fbe1 5603 umlal r5, r6, r1, r3
+ 8000676: f09c 0f00 teq ip, #0
+ 800067a: bf18 it ne
+ 800067c: f04e 0e01 orrne.w lr, lr, #1
+ 8000680: f1a4 04ff sub.w r4, r4, #255 ; 0xff
+ 8000684: f5b6 7f00 cmp.w r6, #512 ; 0x200
+ 8000688: f564 7440 sbc.w r4, r4, #768 ; 0x300
+ 800068c: d204 bcs.n 8000698 <__aeabi_dmul+0x80>
+ 800068e: ea5f 0e4e movs.w lr, lr, lsl #1
+ 8000692: 416d adcs r5, r5
+ 8000694: eb46 0606 adc.w r6, r6, r6
+ 8000698: ea42 21c6 orr.w r1, r2, r6, lsl #11
+ 800069c: ea41 5155 orr.w r1, r1, r5, lsr #21
+ 80006a0: ea4f 20c5 mov.w r0, r5, lsl #11
+ 80006a4: ea40 505e orr.w r0, r0, lr, lsr #21
+ 80006a8: ea4f 2ece mov.w lr, lr, lsl #11
+ 80006ac: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd
+ 80006b0: bf88 it hi
+ 80006b2: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700
+ 80006b6: d81e bhi.n 80006f6 <__aeabi_dmul+0xde>
+ 80006b8: f1be 4f00 cmp.w lr, #2147483648 ; 0x80000000
+ 80006bc: bf08 it eq
+ 80006be: ea5f 0e50 movseq.w lr, r0, lsr #1
+ 80006c2: f150 0000 adcs.w r0, r0, #0
+ 80006c6: eb41 5104 adc.w r1, r1, r4, lsl #20
+ 80006ca: bd70 pop {r4, r5, r6, pc}
+ 80006cc: f006 4600 and.w r6, r6, #2147483648 ; 0x80000000
+ 80006d0: ea46 0101 orr.w r1, r6, r1
+ 80006d4: ea40 0002 orr.w r0, r0, r2
+ 80006d8: ea81 0103 eor.w r1, r1, r3
+ 80006dc: ebb4 045c subs.w r4, r4, ip, lsr #1
+ 80006e0: bfc2 ittt gt
+ 80006e2: ebd4 050c rsbsgt r5, r4, ip
+ 80006e6: ea41 5104 orrgt.w r1, r1, r4, lsl #20
+ 80006ea: bd70 popgt {r4, r5, r6, pc}
+ 80006ec: f441 1180 orr.w r1, r1, #1048576 ; 0x100000
+ 80006f0: f04f 0e00 mov.w lr, #0
+ 80006f4: 3c01 subs r4, #1
+ 80006f6: f300 80ab bgt.w 8000850 <__aeabi_dmul+0x238>
+ 80006fa: f114 0f36 cmn.w r4, #54 ; 0x36
+ 80006fe: bfde ittt le
+ 8000700: 2000 movle r0, #0
+ 8000702: f001 4100 andle.w r1, r1, #2147483648 ; 0x80000000
+ 8000706: bd70 pople {r4, r5, r6, pc}
+ 8000708: f1c4 0400 rsb r4, r4, #0
+ 800070c: 3c20 subs r4, #32
+ 800070e: da35 bge.n 800077c <__aeabi_dmul+0x164>
+ 8000710: 340c adds r4, #12
+ 8000712: dc1b bgt.n 800074c <__aeabi_dmul+0x134>
+ 8000714: f104 0414 add.w r4, r4, #20
+ 8000718: f1c4 0520 rsb r5, r4, #32
+ 800071c: fa00 f305 lsl.w r3, r0, r5
+ 8000720: fa20 f004 lsr.w r0, r0, r4
+ 8000724: fa01 f205 lsl.w r2, r1, r5
+ 8000728: ea40 0002 orr.w r0, r0, r2
+ 800072c: f001 4200 and.w r2, r1, #2147483648 ; 0x80000000
+ 8000730: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000
+ 8000734: eb10 70d3 adds.w r0, r0, r3, lsr #31
+ 8000738: fa21 f604 lsr.w r6, r1, r4
+ 800073c: eb42 0106 adc.w r1, r2, r6
+ 8000740: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
+ 8000744: bf08 it eq
+ 8000746: ea20 70d3 biceq.w r0, r0, r3, lsr #31
+ 800074a: bd70 pop {r4, r5, r6, pc}
+ 800074c: f1c4 040c rsb r4, r4, #12
+ 8000750: f1c4 0520 rsb r5, r4, #32
+ 8000754: fa00 f304 lsl.w r3, r0, r4
+ 8000758: fa20 f005 lsr.w r0, r0, r5
+ 800075c: fa01 f204 lsl.w r2, r1, r4
+ 8000760: ea40 0002 orr.w r0, r0, r2
+ 8000764: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
+ 8000768: eb10 70d3 adds.w r0, r0, r3, lsr #31
+ 800076c: f141 0100 adc.w r1, r1, #0
+ 8000770: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
+ 8000774: bf08 it eq
+ 8000776: ea20 70d3 biceq.w r0, r0, r3, lsr #31
+ 800077a: bd70 pop {r4, r5, r6, pc}
+ 800077c: f1c4 0520 rsb r5, r4, #32
+ 8000780: fa00 f205 lsl.w r2, r0, r5
+ 8000784: ea4e 0e02 orr.w lr, lr, r2
+ 8000788: fa20 f304 lsr.w r3, r0, r4
+ 800078c: fa01 f205 lsl.w r2, r1, r5
+ 8000790: ea43 0302 orr.w r3, r3, r2
+ 8000794: fa21 f004 lsr.w r0, r1, r4
+ 8000798: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
+ 800079c: fa21 f204 lsr.w r2, r1, r4
+ 80007a0: ea20 0002 bic.w r0, r0, r2
+ 80007a4: eb00 70d3 add.w r0, r0, r3, lsr #31
+ 80007a8: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
+ 80007ac: bf08 it eq
+ 80007ae: ea20 70d3 biceq.w r0, r0, r3, lsr #31
+ 80007b2: bd70 pop {r4, r5, r6, pc}
+ 80007b4: f094 0f00 teq r4, #0
+ 80007b8: d10f bne.n 80007da <__aeabi_dmul+0x1c2>
+ 80007ba: f001 4600 and.w r6, r1, #2147483648 ; 0x80000000
+ 80007be: 0040 lsls r0, r0, #1
+ 80007c0: eb41 0101 adc.w r1, r1, r1
+ 80007c4: f411 1f80 tst.w r1, #1048576 ; 0x100000
+ 80007c8: bf08 it eq
+ 80007ca: 3c01 subeq r4, #1
+ 80007cc: d0f7 beq.n 80007be <__aeabi_dmul+0x1a6>
+ 80007ce: ea41 0106 orr.w r1, r1, r6
+ 80007d2: f095 0f00 teq r5, #0
+ 80007d6: bf18 it ne
+ 80007d8: 4770 bxne lr
+ 80007da: f003 4600 and.w r6, r3, #2147483648 ; 0x80000000
+ 80007de: 0052 lsls r2, r2, #1
+ 80007e0: eb43 0303 adc.w r3, r3, r3
+ 80007e4: f413 1f80 tst.w r3, #1048576 ; 0x100000
+ 80007e8: bf08 it eq
+ 80007ea: 3d01 subeq r5, #1
+ 80007ec: d0f7 beq.n 80007de <__aeabi_dmul+0x1c6>
+ 80007ee: ea43 0306 orr.w r3, r3, r6
+ 80007f2: 4770 bx lr
+ 80007f4: ea94 0f0c teq r4, ip
+ 80007f8: ea0c 5513 and.w r5, ip, r3, lsr #20
+ 80007fc: bf18 it ne
+ 80007fe: ea95 0f0c teqne r5, ip
+ 8000802: d00c beq.n 800081e <__aeabi_dmul+0x206>
+ 8000804: ea50 0641 orrs.w r6, r0, r1, lsl #1
+ 8000808: bf18 it ne
+ 800080a: ea52 0643 orrsne.w r6, r2, r3, lsl #1
+ 800080e: d1d1 bne.n 80007b4 <__aeabi_dmul+0x19c>
+ 8000810: ea81 0103 eor.w r1, r1, r3
+ 8000814: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
+ 8000818: f04f 0000 mov.w r0, #0
+ 800081c: bd70 pop {r4, r5, r6, pc}
+ 800081e: ea50 0641 orrs.w r6, r0, r1, lsl #1
+ 8000822: bf06 itte eq
+ 8000824: 4610 moveq r0, r2
+ 8000826: 4619 moveq r1, r3
+ 8000828: ea52 0643 orrsne.w r6, r2, r3, lsl #1
+ 800082c: d019 beq.n 8000862 <__aeabi_dmul+0x24a>
+ 800082e: ea94 0f0c teq r4, ip
+ 8000832: d102 bne.n 800083a <__aeabi_dmul+0x222>
+ 8000834: ea50 3601 orrs.w r6, r0, r1, lsl #12
+ 8000838: d113 bne.n 8000862 <__aeabi_dmul+0x24a>
+ 800083a: ea95 0f0c teq r5, ip
+ 800083e: d105 bne.n 800084c <__aeabi_dmul+0x234>
+ 8000840: ea52 3603 orrs.w r6, r2, r3, lsl #12
+ 8000844: bf1c itt ne
+ 8000846: 4610 movne r0, r2
+ 8000848: 4619 movne r1, r3
+ 800084a: d10a bne.n 8000862 <__aeabi_dmul+0x24a>
+ 800084c: ea81 0103 eor.w r1, r1, r3
+ 8000850: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
+ 8000854: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000
+ 8000858: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000
+ 800085c: f04f 0000 mov.w r0, #0
+ 8000860: bd70 pop {r4, r5, r6, pc}
+ 8000862: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000
+ 8000866: f441 0178 orr.w r1, r1, #16252928 ; 0xf80000
+ 800086a: bd70 pop {r4, r5, r6, pc}
+
+0800086c <__aeabi_ddiv>:
+ 800086c: b570 push {r4, r5, r6, lr}
+ 800086e: f04f 0cff mov.w ip, #255 ; 0xff
+ 8000872: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700
+ 8000876: ea1c 5411 ands.w r4, ip, r1, lsr #20
+ 800087a: bf1d ittte ne
+ 800087c: ea1c 5513 andsne.w r5, ip, r3, lsr #20
+ 8000880: ea94 0f0c teqne r4, ip
+ 8000884: ea95 0f0c teqne r5, ip
+ 8000888: f000 f8a7 bleq 80009da <__aeabi_ddiv+0x16e>
+ 800088c: eba4 0405 sub.w r4, r4, r5
+ 8000890: ea81 0e03 eor.w lr, r1, r3
+ 8000894: ea52 3503 orrs.w r5, r2, r3, lsl #12
+ 8000898: ea4f 3101 mov.w r1, r1, lsl #12
+ 800089c: f000 8088 beq.w 80009b0 <__aeabi_ddiv+0x144>
+ 80008a0: ea4f 3303 mov.w r3, r3, lsl #12
+ 80008a4: f04f 5580 mov.w r5, #268435456 ; 0x10000000
+ 80008a8: ea45 1313 orr.w r3, r5, r3, lsr #4
+ 80008ac: ea43 6312 orr.w r3, r3, r2, lsr #24
+ 80008b0: ea4f 2202 mov.w r2, r2, lsl #8
+ 80008b4: ea45 1511 orr.w r5, r5, r1, lsr #4
+ 80008b8: ea45 6510 orr.w r5, r5, r0, lsr #24
+ 80008bc: ea4f 2600 mov.w r6, r0, lsl #8
+ 80008c0: f00e 4100 and.w r1, lr, #2147483648 ; 0x80000000
+ 80008c4: 429d cmp r5, r3
+ 80008c6: bf08 it eq
+ 80008c8: 4296 cmpeq r6, r2
+ 80008ca: f144 04fd adc.w r4, r4, #253 ; 0xfd
+ 80008ce: f504 7440 add.w r4, r4, #768 ; 0x300
+ 80008d2: d202 bcs.n 80008da <__aeabi_ddiv+0x6e>
+ 80008d4: 085b lsrs r3, r3, #1
+ 80008d6: ea4f 0232 mov.w r2, r2, rrx
+ 80008da: 1ab6 subs r6, r6, r2
+ 80008dc: eb65 0503 sbc.w r5, r5, r3
+ 80008e0: 085b lsrs r3, r3, #1
+ 80008e2: ea4f 0232 mov.w r2, r2, rrx
+ 80008e6: f44f 1080 mov.w r0, #1048576 ; 0x100000
+ 80008ea: f44f 2c00 mov.w ip, #524288 ; 0x80000
+ 80008ee: ebb6 0e02 subs.w lr, r6, r2
+ 80008f2: eb75 0e03 sbcs.w lr, r5, r3
+ 80008f6: bf22 ittt cs
+ 80008f8: 1ab6 subcs r6, r6, r2
+ 80008fa: 4675 movcs r5, lr
+ 80008fc: ea40 000c orrcs.w r0, r0, ip
+ 8000900: 085b lsrs r3, r3, #1
+ 8000902: ea4f 0232 mov.w r2, r2, rrx
+ 8000906: ebb6 0e02 subs.w lr, r6, r2
+ 800090a: eb75 0e03 sbcs.w lr, r5, r3
+ 800090e: bf22 ittt cs
+ 8000910: 1ab6 subcs r6, r6, r2
+ 8000912: 4675 movcs r5, lr
+ 8000914: ea40 005c orrcs.w r0, r0, ip, lsr #1
+ 8000918: 085b lsrs r3, r3, #1
+ 800091a: ea4f 0232 mov.w r2, r2, rrx
+ 800091e: ebb6 0e02 subs.w lr, r6, r2
+ 8000922: eb75 0e03 sbcs.w lr, r5, r3
+ 8000926: bf22 ittt cs
+ 8000928: 1ab6 subcs r6, r6, r2
+ 800092a: 4675 movcs r5, lr
+ 800092c: ea40 009c orrcs.w r0, r0, ip, lsr #2
+ 8000930: 085b lsrs r3, r3, #1
+ 8000932: ea4f 0232 mov.w r2, r2, rrx
+ 8000936: ebb6 0e02 subs.w lr, r6, r2
+ 800093a: eb75 0e03 sbcs.w lr, r5, r3
+ 800093e: bf22 ittt cs
+ 8000940: 1ab6 subcs r6, r6, r2
+ 8000942: 4675 movcs r5, lr
+ 8000944: ea40 00dc orrcs.w r0, r0, ip, lsr #3
+ 8000948: ea55 0e06 orrs.w lr, r5, r6
+ 800094c: d018 beq.n 8000980 <__aeabi_ddiv+0x114>
+ 800094e: ea4f 1505 mov.w r5, r5, lsl #4
+ 8000952: ea45 7516 orr.w r5, r5, r6, lsr #28
+ 8000956: ea4f 1606 mov.w r6, r6, lsl #4
+ 800095a: ea4f 03c3 mov.w r3, r3, lsl #3
+ 800095e: ea43 7352 orr.w r3, r3, r2, lsr #29
+ 8000962: ea4f 02c2 mov.w r2, r2, lsl #3
+ 8000966: ea5f 1c1c movs.w ip, ip, lsr #4
+ 800096a: d1c0 bne.n 80008ee <__aeabi_ddiv+0x82>
+ 800096c: f411 1f80 tst.w r1, #1048576 ; 0x100000
+ 8000970: d10b bne.n 800098a <__aeabi_ddiv+0x11e>
+ 8000972: ea41 0100 orr.w r1, r1, r0
+ 8000976: f04f 0000 mov.w r0, #0
+ 800097a: f04f 4c00 mov.w ip, #2147483648 ; 0x80000000
+ 800097e: e7b6 b.n 80008ee <__aeabi_ddiv+0x82>
+ 8000980: f411 1f80 tst.w r1, #1048576 ; 0x100000
+ 8000984: bf04 itt eq
+ 8000986: 4301 orreq r1, r0
+ 8000988: 2000 moveq r0, #0
+ 800098a: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd
+ 800098e: bf88 it hi
+ 8000990: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700
+ 8000994: f63f aeaf bhi.w 80006f6 <__aeabi_dmul+0xde>
+ 8000998: ebb5 0c03 subs.w ip, r5, r3
+ 800099c: bf04 itt eq
+ 800099e: ebb6 0c02 subseq.w ip, r6, r2
+ 80009a2: ea5f 0c50 movseq.w ip, r0, lsr #1
+ 80009a6: f150 0000 adcs.w r0, r0, #0
+ 80009aa: eb41 5104 adc.w r1, r1, r4, lsl #20
+ 80009ae: bd70 pop {r4, r5, r6, pc}
+ 80009b0: f00e 4e00 and.w lr, lr, #2147483648 ; 0x80000000
+ 80009b4: ea4e 3111 orr.w r1, lr, r1, lsr #12
+ 80009b8: eb14 045c adds.w r4, r4, ip, lsr #1
+ 80009bc: bfc2 ittt gt
+ 80009be: ebd4 050c rsbsgt r5, r4, ip
+ 80009c2: ea41 5104 orrgt.w r1, r1, r4, lsl #20
+ 80009c6: bd70 popgt {r4, r5, r6, pc}
+ 80009c8: f441 1180 orr.w r1, r1, #1048576 ; 0x100000
+ 80009cc: f04f 0e00 mov.w lr, #0
+ 80009d0: 3c01 subs r4, #1
+ 80009d2: e690 b.n 80006f6 <__aeabi_dmul+0xde>
+ 80009d4: ea45 0e06 orr.w lr, r5, r6
+ 80009d8: e68d b.n 80006f6 <__aeabi_dmul+0xde>
+ 80009da: ea0c 5513 and.w r5, ip, r3, lsr #20
+ 80009de: ea94 0f0c teq r4, ip
+ 80009e2: bf08 it eq
+ 80009e4: ea95 0f0c teqeq r5, ip
+ 80009e8: f43f af3b beq.w 8000862 <__aeabi_dmul+0x24a>
+ 80009ec: ea94 0f0c teq r4, ip
+ 80009f0: d10a bne.n 8000a08 <__aeabi_ddiv+0x19c>
+ 80009f2: ea50 3401 orrs.w r4, r0, r1, lsl #12
+ 80009f6: f47f af34 bne.w 8000862 <__aeabi_dmul+0x24a>
+ 80009fa: ea95 0f0c teq r5, ip
+ 80009fe: f47f af25 bne.w 800084c <__aeabi_dmul+0x234>
+ 8000a02: 4610 mov r0, r2
+ 8000a04: 4619 mov r1, r3
+ 8000a06: e72c b.n 8000862 <__aeabi_dmul+0x24a>
+ 8000a08: ea95 0f0c teq r5, ip
+ 8000a0c: d106 bne.n 8000a1c <__aeabi_ddiv+0x1b0>
+ 8000a0e: ea52 3503 orrs.w r5, r2, r3, lsl #12
+ 8000a12: f43f aefd beq.w 8000810 <__aeabi_dmul+0x1f8>
+ 8000a16: 4610 mov r0, r2
+ 8000a18: 4619 mov r1, r3
+ 8000a1a: e722 b.n 8000862 <__aeabi_dmul+0x24a>
+ 8000a1c: ea50 0641 orrs.w r6, r0, r1, lsl #1
+ 8000a20: bf18 it ne
+ 8000a22: ea52 0643 orrsne.w r6, r2, r3, lsl #1
+ 8000a26: f47f aec5 bne.w 80007b4 <__aeabi_dmul+0x19c>
+ 8000a2a: ea50 0441 orrs.w r4, r0, r1, lsl #1
+ 8000a2e: f47f af0d bne.w 800084c <__aeabi_dmul+0x234>
+ 8000a32: ea52 0543 orrs.w r5, r2, r3, lsl #1
+ 8000a36: f47f aeeb bne.w 8000810 <__aeabi_dmul+0x1f8>
+ 8000a3a: e712 b.n 8000862 <__aeabi_dmul+0x24a>
+
+08000a3c <__gedf2>:
+ 8000a3c: f04f 3cff mov.w ip, #4294967295
+ 8000a40: e006 b.n 8000a50 <__cmpdf2+0x4>
+ 8000a42: bf00 nop
+
+08000a44 <__ledf2>:
+ 8000a44: f04f 0c01 mov.w ip, #1
+ 8000a48: e002 b.n 8000a50 <__cmpdf2+0x4>
+ 8000a4a: bf00 nop
+
+08000a4c <__cmpdf2>:
+ 8000a4c: f04f 0c01 mov.w ip, #1
+ 8000a50: f84d cd04 str.w ip, [sp, #-4]!
+ 8000a54: ea4f 0c41 mov.w ip, r1, lsl #1
+ 8000a58: ea7f 5c6c mvns.w ip, ip, asr #21
+ 8000a5c: ea4f 0c43 mov.w ip, r3, lsl #1
+ 8000a60: bf18 it ne
+ 8000a62: ea7f 5c6c mvnsne.w ip, ip, asr #21
+ 8000a66: d01b beq.n 8000aa0 <__cmpdf2+0x54>
+ 8000a68: b001 add sp, #4
+ 8000a6a: ea50 0c41 orrs.w ip, r0, r1, lsl #1
+ 8000a6e: bf0c ite eq
+ 8000a70: ea52 0c43 orrseq.w ip, r2, r3, lsl #1
+ 8000a74: ea91 0f03 teqne r1, r3
+ 8000a78: bf02 ittt eq
+ 8000a7a: ea90 0f02 teqeq r0, r2
+ 8000a7e: 2000 moveq r0, #0
+ 8000a80: 4770 bxeq lr
+ 8000a82: f110 0f00 cmn.w r0, #0
+ 8000a86: ea91 0f03 teq r1, r3
+ 8000a8a: bf58 it pl
+ 8000a8c: 4299 cmppl r1, r3
+ 8000a8e: bf08 it eq
+ 8000a90: 4290 cmpeq r0, r2
+ 8000a92: bf2c ite cs
+ 8000a94: 17d8 asrcs r0, r3, #31
+ 8000a96: ea6f 70e3 mvncc.w r0, r3, asr #31
+ 8000a9a: f040 0001 orr.w r0, r0, #1
+ 8000a9e: 4770 bx lr
+ 8000aa0: ea4f 0c41 mov.w ip, r1, lsl #1
+ 8000aa4: ea7f 5c6c mvns.w ip, ip, asr #21
+ 8000aa8: d102 bne.n 8000ab0 <__cmpdf2+0x64>
+ 8000aaa: ea50 3c01 orrs.w ip, r0, r1, lsl #12
+ 8000aae: d107 bne.n 8000ac0 <__cmpdf2+0x74>
+ 8000ab0: ea4f 0c43 mov.w ip, r3, lsl #1
+ 8000ab4: ea7f 5c6c mvns.w ip, ip, asr #21
+ 8000ab8: d1d6 bne.n 8000a68 <__cmpdf2+0x1c>
+ 8000aba: ea52 3c03 orrs.w ip, r2, r3, lsl #12
+ 8000abe: d0d3 beq.n 8000a68 <__cmpdf2+0x1c>
+ 8000ac0: f85d 0b04 ldr.w r0, [sp], #4
+ 8000ac4: 4770 bx lr
+ 8000ac6: bf00 nop
+
+08000ac8 <__aeabi_cdrcmple>:
+ 8000ac8: 4684 mov ip, r0
+ 8000aca: 4610 mov r0, r2
+ 8000acc: 4662 mov r2, ip
+ 8000ace: 468c mov ip, r1
+ 8000ad0: 4619 mov r1, r3
+ 8000ad2: 4663 mov r3, ip
+ 8000ad4: e000 b.n 8000ad8 <__aeabi_cdcmpeq>
+ 8000ad6: bf00 nop
+
+08000ad8 <__aeabi_cdcmpeq>:
+ 8000ad8: b501 push {r0, lr}
+ 8000ada: f7ff ffb7 bl 8000a4c <__cmpdf2>
+ 8000ade: 2800 cmp r0, #0
+ 8000ae0: bf48 it mi
+ 8000ae2: f110 0f00 cmnmi.w r0, #0
+ 8000ae6: bd01 pop {r0, pc}
+
+08000ae8 <__aeabi_dcmpeq>:
+ 8000ae8: f84d ed08 str.w lr, [sp, #-8]!
+ 8000aec: f7ff fff4 bl 8000ad8 <__aeabi_cdcmpeq>
+ 8000af0: bf0c ite eq
+ 8000af2: 2001 moveq r0, #1
+ 8000af4: 2000 movne r0, #0
+ 8000af6: f85d fb08 ldr.w pc, [sp], #8
+ 8000afa: bf00 nop
+
+08000afc <__aeabi_dcmplt>:
+ 8000afc: f84d ed08 str.w lr, [sp, #-8]!
+ 8000b00: f7ff ffea bl 8000ad8 <__aeabi_cdcmpeq>
+ 8000b04: bf34 ite cc
+ 8000b06: 2001 movcc r0, #1
+ 8000b08: 2000 movcs r0, #0
+ 8000b0a: f85d fb08 ldr.w pc, [sp], #8
+ 8000b0e: bf00 nop
+
+08000b10 <__aeabi_dcmple>:
+ 8000b10: f84d ed08 str.w lr, [sp, #-8]!
+ 8000b14: f7ff ffe0 bl 8000ad8 <__aeabi_cdcmpeq>
+ 8000b18: bf94 ite ls
+ 8000b1a: 2001 movls r0, #1
+ 8000b1c: 2000 movhi r0, #0
+ 8000b1e: f85d fb08 ldr.w pc, [sp], #8
+ 8000b22: bf00 nop
+
+08000b24 <__aeabi_dcmpge>:
+ 8000b24: f84d ed08 str.w lr, [sp, #-8]!
+ 8000b28: f7ff ffce bl 8000ac8 <__aeabi_cdrcmple>
+ 8000b2c: bf94 ite ls
+ 8000b2e: 2001 movls r0, #1
+ 8000b30: 2000 movhi r0, #0
+ 8000b32: f85d fb08 ldr.w pc, [sp], #8
+ 8000b36: bf00 nop
+
+08000b38 <__aeabi_dcmpgt>:
+ 8000b38: f84d ed08 str.w lr, [sp, #-8]!
+ 8000b3c: f7ff ffc4 bl 8000ac8 <__aeabi_cdrcmple>
+ 8000b40: bf34 ite cc
+ 8000b42: 2001 movcc r0, #1
+ 8000b44: 2000 movcs r0, #0
+ 8000b46: f85d fb08 ldr.w pc, [sp], #8
+ 8000b4a: bf00 nop
+
+08000b4c <__aeabi_dcmpun>:
+ 8000b4c: ea4f 0c41 mov.w ip, r1, lsl #1
+ 8000b50: ea7f 5c6c mvns.w ip, ip, asr #21
+ 8000b54: d102 bne.n 8000b5c <__aeabi_dcmpun+0x10>
+ 8000b56: ea50 3c01 orrs.w ip, r0, r1, lsl #12
+ 8000b5a: d10a bne.n 8000b72 <__aeabi_dcmpun+0x26>
+ 8000b5c: ea4f 0c43 mov.w ip, r3, lsl #1
+ 8000b60: ea7f 5c6c mvns.w ip, ip, asr #21
+ 8000b64: d102 bne.n 8000b6c <__aeabi_dcmpun+0x20>
+ 8000b66: ea52 3c03 orrs.w ip, r2, r3, lsl #12
+ 8000b6a: d102 bne.n 8000b72 <__aeabi_dcmpun+0x26>
+ 8000b6c: f04f 0000 mov.w r0, #0
+ 8000b70: 4770 bx lr
+ 8000b72: f04f 0001 mov.w r0, #1
+ 8000b76: 4770 bx lr
+
+08000b78 <__aeabi_d2iz>:
+ 8000b78: ea4f 0241 mov.w r2, r1, lsl #1
+ 8000b7c: f512 1200 adds.w r2, r2, #2097152 ; 0x200000
+ 8000b80: d215 bcs.n 8000bae <__aeabi_d2iz+0x36>
+ 8000b82: d511 bpl.n 8000ba8 <__aeabi_d2iz+0x30>
+ 8000b84: f46f 7378 mvn.w r3, #992 ; 0x3e0
+ 8000b88: ebb3 5262 subs.w r2, r3, r2, asr #21
+ 8000b8c: d912 bls.n 8000bb4 <__aeabi_d2iz+0x3c>
+ 8000b8e: ea4f 23c1 mov.w r3, r1, lsl #11
+ 8000b92: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000
+ 8000b96: ea43 5350 orr.w r3, r3, r0, lsr #21
+ 8000b9a: f011 4f00 tst.w r1, #2147483648 ; 0x80000000
+ 8000b9e: fa23 f002 lsr.w r0, r3, r2
+ 8000ba2: bf18 it ne
+ 8000ba4: 4240 negne r0, r0
+ 8000ba6: 4770 bx lr
+ 8000ba8: f04f 0000 mov.w r0, #0
+ 8000bac: 4770 bx lr
+ 8000bae: ea50 3001 orrs.w r0, r0, r1, lsl #12
+ 8000bb2: d105 bne.n 8000bc0 <__aeabi_d2iz+0x48>
+ 8000bb4: f011 4000 ands.w r0, r1, #2147483648 ; 0x80000000
+ 8000bb8: bf08 it eq
+ 8000bba: f06f 4000 mvneq.w r0, #2147483648 ; 0x80000000
+ 8000bbe: 4770 bx lr
+ 8000bc0: f04f 0000 mov.w r0, #0
+ 8000bc4: 4770 bx lr
+ 8000bc6: bf00 nop
+
+08000bc8 <__aeabi_uldivmod>:
+ 8000bc8: b953 cbnz r3, 8000be0 <__aeabi_uldivmod+0x18>
+ 8000bca: b94a cbnz r2, 8000be0 <__aeabi_uldivmod+0x18>
+ 8000bcc: 2900 cmp r1, #0
+ 8000bce: bf08 it eq
+ 8000bd0: 2800 cmpeq r0, #0
+ 8000bd2: bf1c itt ne
+ 8000bd4: f04f 31ff movne.w r1, #4294967295
+ 8000bd8: f04f 30ff movne.w r0, #4294967295
+ 8000bdc: f000 b974 b.w 8000ec8 <__aeabi_idiv0>
+ 8000be0: f1ad 0c08 sub.w ip, sp, #8
+ 8000be4: e96d ce04 strd ip, lr, [sp, #-16]!
+ 8000be8: f000 f806 bl 8000bf8 <__udivmoddi4>
+ 8000bec: f8dd e004 ldr.w lr, [sp, #4]
+ 8000bf0: e9dd 2302 ldrd r2, r3, [sp, #8]
+ 8000bf4: b004 add sp, #16
+ 8000bf6: 4770 bx lr
+
+08000bf8 <__udivmoddi4>:
+ 8000bf8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8000bfc: 9d08 ldr r5, [sp, #32]
+ 8000bfe: 4604 mov r4, r0
+ 8000c00: 468e mov lr, r1
+ 8000c02: 2b00 cmp r3, #0
+ 8000c04: d14d bne.n 8000ca2 <__udivmoddi4+0xaa>
+ 8000c06: 428a cmp r2, r1
+ 8000c08: 4694 mov ip, r2
+ 8000c0a: d969 bls.n 8000ce0 <__udivmoddi4+0xe8>
+ 8000c0c: fab2 f282 clz r2, r2
+ 8000c10: b152 cbz r2, 8000c28 <__udivmoddi4+0x30>
+ 8000c12: fa01 f302 lsl.w r3, r1, r2
+ 8000c16: f1c2 0120 rsb r1, r2, #32
+ 8000c1a: fa20 f101 lsr.w r1, r0, r1
+ 8000c1e: fa0c fc02 lsl.w ip, ip, r2
+ 8000c22: ea41 0e03 orr.w lr, r1, r3
+ 8000c26: 4094 lsls r4, r2
+ 8000c28: ea4f 481c mov.w r8, ip, lsr #16
+ 8000c2c: 0c21 lsrs r1, r4, #16
+ 8000c2e: fbbe f6f8 udiv r6, lr, r8
+ 8000c32: fa1f f78c uxth.w r7, ip
+ 8000c36: fb08 e316 mls r3, r8, r6, lr
+ 8000c3a: ea41 4303 orr.w r3, r1, r3, lsl #16
+ 8000c3e: fb06 f107 mul.w r1, r6, r7
+ 8000c42: 4299 cmp r1, r3
+ 8000c44: d90a bls.n 8000c5c <__udivmoddi4+0x64>
+ 8000c46: eb1c 0303 adds.w r3, ip, r3
+ 8000c4a: f106 30ff add.w r0, r6, #4294967295
+ 8000c4e: f080 811f bcs.w 8000e90 <__udivmoddi4+0x298>
+ 8000c52: 4299 cmp r1, r3
+ 8000c54: f240 811c bls.w 8000e90 <__udivmoddi4+0x298>
+ 8000c58: 3e02 subs r6, #2
+ 8000c5a: 4463 add r3, ip
+ 8000c5c: 1a5b subs r3, r3, r1
+ 8000c5e: b2a4 uxth r4, r4
+ 8000c60: fbb3 f0f8 udiv r0, r3, r8
+ 8000c64: fb08 3310 mls r3, r8, r0, r3
+ 8000c68: ea44 4403 orr.w r4, r4, r3, lsl #16
+ 8000c6c: fb00 f707 mul.w r7, r0, r7
+ 8000c70: 42a7 cmp r7, r4
+ 8000c72: d90a bls.n 8000c8a <__udivmoddi4+0x92>
+ 8000c74: eb1c 0404 adds.w r4, ip, r4
+ 8000c78: f100 33ff add.w r3, r0, #4294967295
+ 8000c7c: f080 810a bcs.w 8000e94 <__udivmoddi4+0x29c>
+ 8000c80: 42a7 cmp r7, r4
+ 8000c82: f240 8107 bls.w 8000e94 <__udivmoddi4+0x29c>
+ 8000c86: 4464 add r4, ip
+ 8000c88: 3802 subs r0, #2
+ 8000c8a: ea40 4006 orr.w r0, r0, r6, lsl #16
+ 8000c8e: 1be4 subs r4, r4, r7
+ 8000c90: 2600 movs r6, #0
+ 8000c92: b11d cbz r5, 8000c9c <__udivmoddi4+0xa4>
+ 8000c94: 40d4 lsrs r4, r2
+ 8000c96: 2300 movs r3, #0
+ 8000c98: e9c5 4300 strd r4, r3, [r5]
+ 8000c9c: 4631 mov r1, r6
+ 8000c9e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8000ca2: 428b cmp r3, r1
+ 8000ca4: d909 bls.n 8000cba <__udivmoddi4+0xc2>
+ 8000ca6: 2d00 cmp r5, #0
+ 8000ca8: f000 80ef beq.w 8000e8a <__udivmoddi4+0x292>
+ 8000cac: 2600 movs r6, #0
+ 8000cae: e9c5 0100 strd r0, r1, [r5]
+ 8000cb2: 4630 mov r0, r6
+ 8000cb4: 4631 mov r1, r6
+ 8000cb6: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8000cba: fab3 f683 clz r6, r3
+ 8000cbe: 2e00 cmp r6, #0
+ 8000cc0: d14a bne.n 8000d58 <__udivmoddi4+0x160>
+ 8000cc2: 428b cmp r3, r1
+ 8000cc4: d302 bcc.n 8000ccc <__udivmoddi4+0xd4>
+ 8000cc6: 4282 cmp r2, r0
+ 8000cc8: f200 80f9 bhi.w 8000ebe <__udivmoddi4+0x2c6>
+ 8000ccc: 1a84 subs r4, r0, r2
+ 8000cce: eb61 0303 sbc.w r3, r1, r3
+ 8000cd2: 2001 movs r0, #1
+ 8000cd4: 469e mov lr, r3
+ 8000cd6: 2d00 cmp r5, #0
+ 8000cd8: d0e0 beq.n 8000c9c <__udivmoddi4+0xa4>
+ 8000cda: e9c5 4e00 strd r4, lr, [r5]
+ 8000cde: e7dd b.n 8000c9c <__udivmoddi4+0xa4>
+ 8000ce0: b902 cbnz r2, 8000ce4 <__udivmoddi4+0xec>
+ 8000ce2: deff udf #255 ; 0xff
+ 8000ce4: fab2 f282 clz r2, r2
+ 8000ce8: 2a00 cmp r2, #0
+ 8000cea: f040 8092 bne.w 8000e12 <__udivmoddi4+0x21a>
+ 8000cee: eba1 010c sub.w r1, r1, ip
+ 8000cf2: ea4f 471c mov.w r7, ip, lsr #16
+ 8000cf6: fa1f fe8c uxth.w lr, ip
+ 8000cfa: 2601 movs r6, #1
+ 8000cfc: 0c20 lsrs r0, r4, #16
+ 8000cfe: fbb1 f3f7 udiv r3, r1, r7
+ 8000d02: fb07 1113 mls r1, r7, r3, r1
+ 8000d06: ea40 4101 orr.w r1, r0, r1, lsl #16
+ 8000d0a: fb0e f003 mul.w r0, lr, r3
+ 8000d0e: 4288 cmp r0, r1
+ 8000d10: d908 bls.n 8000d24 <__udivmoddi4+0x12c>
+ 8000d12: eb1c 0101 adds.w r1, ip, r1
+ 8000d16: f103 38ff add.w r8, r3, #4294967295
+ 8000d1a: d202 bcs.n 8000d22 <__udivmoddi4+0x12a>
+ 8000d1c: 4288 cmp r0, r1
+ 8000d1e: f200 80cb bhi.w 8000eb8 <__udivmoddi4+0x2c0>
+ 8000d22: 4643 mov r3, r8
+ 8000d24: 1a09 subs r1, r1, r0
+ 8000d26: b2a4 uxth r4, r4
+ 8000d28: fbb1 f0f7 udiv r0, r1, r7
+ 8000d2c: fb07 1110 mls r1, r7, r0, r1
+ 8000d30: ea44 4401 orr.w r4, r4, r1, lsl #16
+ 8000d34: fb0e fe00 mul.w lr, lr, r0
+ 8000d38: 45a6 cmp lr, r4
+ 8000d3a: d908 bls.n 8000d4e <__udivmoddi4+0x156>
+ 8000d3c: eb1c 0404 adds.w r4, ip, r4
+ 8000d40: f100 31ff add.w r1, r0, #4294967295
+ 8000d44: d202 bcs.n 8000d4c <__udivmoddi4+0x154>
+ 8000d46: 45a6 cmp lr, r4
+ 8000d48: f200 80bb bhi.w 8000ec2 <__udivmoddi4+0x2ca>
+ 8000d4c: 4608 mov r0, r1
+ 8000d4e: eba4 040e sub.w r4, r4, lr
+ 8000d52: ea40 4003 orr.w r0, r0, r3, lsl #16
+ 8000d56: e79c b.n 8000c92 <__udivmoddi4+0x9a>
+ 8000d58: f1c6 0720 rsb r7, r6, #32
+ 8000d5c: 40b3 lsls r3, r6
+ 8000d5e: fa22 fc07 lsr.w ip, r2, r7
+ 8000d62: ea4c 0c03 orr.w ip, ip, r3
+ 8000d66: fa20 f407 lsr.w r4, r0, r7
+ 8000d6a: fa01 f306 lsl.w r3, r1, r6
+ 8000d6e: 431c orrs r4, r3
+ 8000d70: 40f9 lsrs r1, r7
+ 8000d72: ea4f 491c mov.w r9, ip, lsr #16
+ 8000d76: fa00 f306 lsl.w r3, r0, r6
+ 8000d7a: fbb1 f8f9 udiv r8, r1, r9
+ 8000d7e: 0c20 lsrs r0, r4, #16
+ 8000d80: fa1f fe8c uxth.w lr, ip
+ 8000d84: fb09 1118 mls r1, r9, r8, r1
+ 8000d88: ea40 4101 orr.w r1, r0, r1, lsl #16
+ 8000d8c: fb08 f00e mul.w r0, r8, lr
+ 8000d90: 4288 cmp r0, r1
+ 8000d92: fa02 f206 lsl.w r2, r2, r6
+ 8000d96: d90b bls.n 8000db0 <__udivmoddi4+0x1b8>
+ 8000d98: eb1c 0101 adds.w r1, ip, r1
+ 8000d9c: f108 3aff add.w sl, r8, #4294967295
+ 8000da0: f080 8088 bcs.w 8000eb4 <__udivmoddi4+0x2bc>
+ 8000da4: 4288 cmp r0, r1
+ 8000da6: f240 8085 bls.w 8000eb4 <__udivmoddi4+0x2bc>
+ 8000daa: f1a8 0802 sub.w r8, r8, #2
+ 8000dae: 4461 add r1, ip
+ 8000db0: 1a09 subs r1, r1, r0
+ 8000db2: b2a4 uxth r4, r4
+ 8000db4: fbb1 f0f9 udiv r0, r1, r9
+ 8000db8: fb09 1110 mls r1, r9, r0, r1
+ 8000dbc: ea44 4101 orr.w r1, r4, r1, lsl #16
+ 8000dc0: fb00 fe0e mul.w lr, r0, lr
+ 8000dc4: 458e cmp lr, r1
+ 8000dc6: d908 bls.n 8000dda <__udivmoddi4+0x1e2>
+ 8000dc8: eb1c 0101 adds.w r1, ip, r1
+ 8000dcc: f100 34ff add.w r4, r0, #4294967295
+ 8000dd0: d26c bcs.n 8000eac <__udivmoddi4+0x2b4>
+ 8000dd2: 458e cmp lr, r1
+ 8000dd4: d96a bls.n 8000eac <__udivmoddi4+0x2b4>
+ 8000dd6: 3802 subs r0, #2
+ 8000dd8: 4461 add r1, ip
+ 8000dda: ea40 4008 orr.w r0, r0, r8, lsl #16
+ 8000dde: fba0 9402 umull r9, r4, r0, r2
+ 8000de2: eba1 010e sub.w r1, r1, lr
+ 8000de6: 42a1 cmp r1, r4
+ 8000de8: 46c8 mov r8, r9
+ 8000dea: 46a6 mov lr, r4
+ 8000dec: d356 bcc.n 8000e9c <__udivmoddi4+0x2a4>
+ 8000dee: d053 beq.n 8000e98 <__udivmoddi4+0x2a0>
+ 8000df0: b15d cbz r5, 8000e0a <__udivmoddi4+0x212>
+ 8000df2: ebb3 0208 subs.w r2, r3, r8
+ 8000df6: eb61 010e sbc.w r1, r1, lr
+ 8000dfa: fa01 f707 lsl.w r7, r1, r7
+ 8000dfe: fa22 f306 lsr.w r3, r2, r6
+ 8000e02: 40f1 lsrs r1, r6
+ 8000e04: 431f orrs r7, r3
+ 8000e06: e9c5 7100 strd r7, r1, [r5]
+ 8000e0a: 2600 movs r6, #0
+ 8000e0c: 4631 mov r1, r6
+ 8000e0e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8000e12: f1c2 0320 rsb r3, r2, #32
+ 8000e16: 40d8 lsrs r0, r3
+ 8000e18: fa0c fc02 lsl.w ip, ip, r2
+ 8000e1c: fa21 f303 lsr.w r3, r1, r3
+ 8000e20: 4091 lsls r1, r2
+ 8000e22: 4301 orrs r1, r0
+ 8000e24: ea4f 471c mov.w r7, ip, lsr #16
+ 8000e28: fa1f fe8c uxth.w lr, ip
+ 8000e2c: fbb3 f0f7 udiv r0, r3, r7
+ 8000e30: fb07 3610 mls r6, r7, r0, r3
+ 8000e34: 0c0b lsrs r3, r1, #16
+ 8000e36: ea43 4306 orr.w r3, r3, r6, lsl #16
+ 8000e3a: fb00 f60e mul.w r6, r0, lr
+ 8000e3e: 429e cmp r6, r3
+ 8000e40: fa04 f402 lsl.w r4, r4, r2
+ 8000e44: d908 bls.n 8000e58 <__udivmoddi4+0x260>
+ 8000e46: eb1c 0303 adds.w r3, ip, r3
+ 8000e4a: f100 38ff add.w r8, r0, #4294967295
+ 8000e4e: d22f bcs.n 8000eb0 <__udivmoddi4+0x2b8>
+ 8000e50: 429e cmp r6, r3
+ 8000e52: d92d bls.n 8000eb0 <__udivmoddi4+0x2b8>
+ 8000e54: 3802 subs r0, #2
+ 8000e56: 4463 add r3, ip
+ 8000e58: 1b9b subs r3, r3, r6
+ 8000e5a: b289 uxth r1, r1
+ 8000e5c: fbb3 f6f7 udiv r6, r3, r7
+ 8000e60: fb07 3316 mls r3, r7, r6, r3
+ 8000e64: ea41 4103 orr.w r1, r1, r3, lsl #16
+ 8000e68: fb06 f30e mul.w r3, r6, lr
+ 8000e6c: 428b cmp r3, r1
+ 8000e6e: d908 bls.n 8000e82 <__udivmoddi4+0x28a>
+ 8000e70: eb1c 0101 adds.w r1, ip, r1
+ 8000e74: f106 38ff add.w r8, r6, #4294967295
+ 8000e78: d216 bcs.n 8000ea8 <__udivmoddi4+0x2b0>
+ 8000e7a: 428b cmp r3, r1
+ 8000e7c: d914 bls.n 8000ea8 <__udivmoddi4+0x2b0>
+ 8000e7e: 3e02 subs r6, #2
+ 8000e80: 4461 add r1, ip
+ 8000e82: 1ac9 subs r1, r1, r3
+ 8000e84: ea46 4600 orr.w r6, r6, r0, lsl #16
+ 8000e88: e738 b.n 8000cfc <__udivmoddi4+0x104>
+ 8000e8a: 462e mov r6, r5
+ 8000e8c: 4628 mov r0, r5
+ 8000e8e: e705 b.n 8000c9c <__udivmoddi4+0xa4>
+ 8000e90: 4606 mov r6, r0
+ 8000e92: e6e3 b.n 8000c5c <__udivmoddi4+0x64>
+ 8000e94: 4618 mov r0, r3
+ 8000e96: e6f8 b.n 8000c8a <__udivmoddi4+0x92>
+ 8000e98: 454b cmp r3, r9
+ 8000e9a: d2a9 bcs.n 8000df0 <__udivmoddi4+0x1f8>
+ 8000e9c: ebb9 0802 subs.w r8, r9, r2
+ 8000ea0: eb64 0e0c sbc.w lr, r4, ip
+ 8000ea4: 3801 subs r0, #1
+ 8000ea6: e7a3 b.n 8000df0 <__udivmoddi4+0x1f8>
+ 8000ea8: 4646 mov r6, r8
+ 8000eaa: e7ea b.n 8000e82 <__udivmoddi4+0x28a>
+ 8000eac: 4620 mov r0, r4
+ 8000eae: e794 b.n 8000dda <__udivmoddi4+0x1e2>
+ 8000eb0: 4640 mov r0, r8
+ 8000eb2: e7d1 b.n 8000e58 <__udivmoddi4+0x260>
+ 8000eb4: 46d0 mov r8, sl
+ 8000eb6: e77b b.n 8000db0 <__udivmoddi4+0x1b8>
+ 8000eb8: 3b02 subs r3, #2
+ 8000eba: 4461 add r1, ip
+ 8000ebc: e732 b.n 8000d24 <__udivmoddi4+0x12c>
+ 8000ebe: 4630 mov r0, r6
+ 8000ec0: e709 b.n 8000cd6 <__udivmoddi4+0xde>
+ 8000ec2: 4464 add r4, ip
+ 8000ec4: 3802 subs r0, #2
+ 8000ec6: e742 b.n 8000d4e <__udivmoddi4+0x156>
+
+08000ec8 <__aeabi_idiv0>:
+ 8000ec8: 4770 bx lr
+ 8000eca: bf00 nop
+
+08000ecc :
+/**
+ * @brief The application entry point.
+ * @retval int
+ */
+int main(void)
+{
+ 8000ecc: b580 push {r7, lr}
+ 8000ece: af00 add r7, sp, #0
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+ 8000ed0: f000 faca bl 8001468
+
+ /* Configure the system clock */
+ SystemClock_Config();
+ 8000ed4: f000 f808 bl 8000ee8
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ 8000ed8: f000 f872 bl 8000fc0
+ MX_LWIP_Init();
+ 8000edc: f002 fb2c bl 8003538
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+
+ while (1)
+ {
+ MX_LWIP_Process();
+ 8000ee0: f002 fb98 bl 8003614
+ 8000ee4: e7fc b.n 8000ee0
+ ...
+
+08000ee8 :
+/**
+ * @brief System Clock Configuration
+ * @retval None
+ */
+void SystemClock_Config(void)
+{
+ 8000ee8: b580 push {r7, lr}
+ 8000eea: b094 sub sp, #80 ; 0x50
+ 8000eec: af00 add r7, sp, #0
+ RCC_OscInitTypeDef RCC_OscInitStruct = {0};
+ 8000eee: f107 0320 add.w r3, r7, #32
+ 8000ef2: 2230 movs r2, #48 ; 0x30
+ 8000ef4: 2100 movs r1, #0
+ 8000ef6: 4618 mov r0, r3
+ 8000ef8: f00e ffd6 bl 800fea8
+ RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
+ 8000efc: f107 030c add.w r3, r7, #12
+ 8000f00: 2200 movs r2, #0
+ 8000f02: 601a str r2, [r3, #0]
+ 8000f04: 605a str r2, [r3, #4]
+ 8000f06: 609a str r2, [r3, #8]
+ 8000f08: 60da str r2, [r3, #12]
+ 8000f0a: 611a str r2, [r3, #16]
+
+ /** Configure the main internal regulator output voltage
+ */
+ __HAL_RCC_PWR_CLK_ENABLE();
+ 8000f0c: 2300 movs r3, #0
+ 8000f0e: 60bb str r3, [r7, #8]
+ 8000f10: 4b29 ldr r3, [pc, #164] ; (8000fb8 )
+ 8000f12: 6c1b ldr r3, [r3, #64] ; 0x40
+ 8000f14: 4a28 ldr r2, [pc, #160] ; (8000fb8 )
+ 8000f16: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
+ 8000f1a: 6413 str r3, [r2, #64] ; 0x40
+ 8000f1c: 4b26 ldr r3, [pc, #152] ; (8000fb8 )
+ 8000f1e: 6c1b ldr r3, [r3, #64] ; 0x40
+ 8000f20: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
+ 8000f24: 60bb str r3, [r7, #8]
+ 8000f26: 68bb ldr r3, [r7, #8]
+ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
+ 8000f28: 2300 movs r3, #0
+ 8000f2a: 607b str r3, [r7, #4]
+ 8000f2c: 4b23 ldr r3, [pc, #140] ; (8000fbc )
+ 8000f2e: 681b ldr r3, [r3, #0]
+ 8000f30: f423 4340 bic.w r3, r3, #49152 ; 0xc000
+ 8000f34: 4a21 ldr r2, [pc, #132] ; (8000fbc )
+ 8000f36: f443 4380 orr.w r3, r3, #16384 ; 0x4000
+ 8000f3a: 6013 str r3, [r2, #0]
+ 8000f3c: 4b1f ldr r3, [pc, #124] ; (8000fbc )
+ 8000f3e: 681b ldr r3, [r3, #0]
+ 8000f40: f403 4340 and.w r3, r3, #49152 ; 0xc000
+ 8000f44: 607b str r3, [r7, #4]
+ 8000f46: 687b ldr r3, [r7, #4]
+
+ /** Initializes the RCC Oscillators according to the specified parameters
+ * in the RCC_OscInitTypeDef structure.
+ */
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
+ 8000f48: 2302 movs r3, #2
+ 8000f4a: 623b str r3, [r7, #32]
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;
+ 8000f4c: 2301 movs r3, #1
+ 8000f4e: 62fb str r3, [r7, #44] ; 0x2c
+ RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
+ 8000f50: 2310 movs r3, #16
+ 8000f52: 633b str r3, [r7, #48] ; 0x30
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ 8000f54: 2302 movs r3, #2
+ 8000f56: 63bb str r3, [r7, #56] ; 0x38
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
+ 8000f58: 2300 movs r3, #0
+ 8000f5a: 63fb str r3, [r7, #60] ; 0x3c
+ RCC_OscInitStruct.PLL.PLLM = 8;
+ 8000f5c: 2308 movs r3, #8
+ 8000f5e: 643b str r3, [r7, #64] ; 0x40
+ RCC_OscInitStruct.PLL.PLLN = 100;
+ 8000f60: 2364 movs r3, #100 ; 0x64
+ 8000f62: 647b str r3, [r7, #68] ; 0x44
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ 8000f64: 2302 movs r3, #2
+ 8000f66: 64bb str r3, [r7, #72] ; 0x48
+ RCC_OscInitStruct.PLL.PLLQ = 4;
+ 8000f68: 2304 movs r3, #4
+ 8000f6a: 64fb str r3, [r7, #76] ; 0x4c
+ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+ 8000f6c: f107 0320 add.w r3, r7, #32
+ 8000f70: 4618 mov r0, r3
+ 8000f72: f001 feb1 bl 8002cd8
+ 8000f76: 4603 mov r3, r0
+ 8000f78: 2b00 cmp r3, #0
+ 8000f7a: d001 beq.n 8000f80
+ {
+ Error_Handler();
+ 8000f7c: f000 f880 bl 8001080
+ }
+
+ /** Initializes the CPU, AHB and APB buses clocks
+ */
+ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
+ 8000f80: 230f movs r3, #15
+ 8000f82: 60fb str r3, [r7, #12]
+ |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
+ 8000f84: 2302 movs r3, #2
+ 8000f86: 613b str r3, [r7, #16]
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+ 8000f88: 2300 movs r3, #0
+ 8000f8a: 617b str r3, [r7, #20]
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
+ 8000f8c: f44f 53a0 mov.w r3, #5120 ; 0x1400
+ 8000f90: 61bb str r3, [r7, #24]
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
+ 8000f92: f44f 5380 mov.w r3, #4096 ; 0x1000
+ 8000f96: 61fb str r3, [r7, #28]
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK)
+ 8000f98: f107 030c add.w r3, r7, #12
+ 8000f9c: 2103 movs r1, #3
+ 8000f9e: 4618 mov r0, r3
+ 8000fa0: f002 f912 bl 80031c8
+ 8000fa4: 4603 mov r3, r0
+ 8000fa6: 2b00 cmp r3, #0
+ 8000fa8: d001 beq.n 8000fae
+ {
+ Error_Handler();
+ 8000faa: f000 f869 bl 8001080
+ }
+}
+ 8000fae: bf00 nop
+ 8000fb0: 3750 adds r7, #80 ; 0x50
+ 8000fb2: 46bd mov sp, r7
+ 8000fb4: bd80 pop {r7, pc}
+ 8000fb6: bf00 nop
+ 8000fb8: 40023800 .word 0x40023800
+ 8000fbc: 40007000 .word 0x40007000
+
+08000fc0 :
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ 8000fc0: b580 push {r7, lr}
+ 8000fc2: b08a sub sp, #40 ; 0x28
+ 8000fc4: af00 add r7, sp, #0
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ 8000fc6: f107 0314 add.w r3, r7, #20
+ 8000fca: 2200 movs r2, #0
+ 8000fcc: 601a str r2, [r3, #0]
+ 8000fce: 605a str r2, [r3, #4]
+ 8000fd0: 609a str r2, [r3, #8]
+ 8000fd2: 60da str r2, [r3, #12]
+ 8000fd4: 611a str r2, [r3, #16]
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ 8000fd6: 2300 movs r3, #0
+ 8000fd8: 613b str r3, [r7, #16]
+ 8000fda: 4b27 ldr r3, [pc, #156] ; (8001078 )
+ 8000fdc: 6b1b ldr r3, [r3, #48] ; 0x30
+ 8000fde: 4a26 ldr r2, [pc, #152] ; (8001078 )
+ 8000fe0: f043 0304 orr.w r3, r3, #4
+ 8000fe4: 6313 str r3, [r2, #48] ; 0x30
+ 8000fe6: 4b24 ldr r3, [pc, #144] ; (8001078 )
+ 8000fe8: 6b1b ldr r3, [r3, #48] ; 0x30
+ 8000fea: f003 0304 and.w r3, r3, #4
+ 8000fee: 613b str r3, [r7, #16]
+ 8000ff0: 693b ldr r3, [r7, #16]
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ 8000ff2: 2300 movs r3, #0
+ 8000ff4: 60fb str r3, [r7, #12]
+ 8000ff6: 4b20 ldr r3, [pc, #128] ; (8001078 )
+ 8000ff8: 6b1b ldr r3, [r3, #48] ; 0x30
+ 8000ffa: 4a1f ldr r2, [pc, #124] ; (8001078 )
+ 8000ffc: f043 0301 orr.w r3, r3, #1
+ 8001000: 6313 str r3, [r2, #48] ; 0x30
+ 8001002: 4b1d ldr r3, [pc, #116] ; (8001078 )
+ 8001004: 6b1b ldr r3, [r3, #48] ; 0x30
+ 8001006: f003 0301 and.w r3, r3, #1
+ 800100a: 60fb str r3, [r7, #12]
+ 800100c: 68fb ldr r3, [r7, #12]
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ 800100e: 2300 movs r3, #0
+ 8001010: 60bb str r3, [r7, #8]
+ 8001012: 4b19 ldr r3, [pc, #100] ; (8001078 )
+ 8001014: 6b1b ldr r3, [r3, #48] ; 0x30
+ 8001016: 4a18 ldr r2, [pc, #96] ; (8001078 )
+ 8001018: f043 0302 orr.w r3, r3, #2
+ 800101c: 6313 str r3, [r2, #48] ; 0x30
+ 800101e: 4b16 ldr r3, [pc, #88] ; (8001078 )
+ 8001020: 6b1b ldr r3, [r3, #48] ; 0x30
+ 8001022: f003 0302 and.w r3, r3, #2
+ 8001026: 60bb str r3, [r7, #8]
+ 8001028: 68bb ldr r3, [r7, #8]
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ 800102a: 2300 movs r3, #0
+ 800102c: 607b str r3, [r7, #4]
+ 800102e: 4b12 ldr r3, [pc, #72] ; (8001078 )
+ 8001030: 6b1b ldr r3, [r3, #48] ; 0x30
+ 8001032: 4a11 ldr r2, [pc, #68] ; (8001078 )
+ 8001034: f043 0340 orr.w r3, r3, #64 ; 0x40
+ 8001038: 6313 str r3, [r2, #48] ; 0x30
+ 800103a: 4b0f ldr r3, [pc, #60] ; (8001078 )
+ 800103c: 6b1b ldr r3, [r3, #48] ; 0x30
+ 800103e: f003 0340 and.w r3, r3, #64 ; 0x40
+ 8001042: 607b str r3, [r7, #4]
+ 8001044: 687b ldr r3, [r7, #4]
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);
+ 8001046: 2200 movs r2, #0
+ 8001048: f44f 4180 mov.w r1, #16384 ; 0x4000
+ 800104c: 480b ldr r0, [pc, #44] ; (800107c )
+ 800104e: f001 fe29 bl 8002ca4
+
+ /*Configure GPIO pin : PC14 */
+ GPIO_InitStruct.Pin = GPIO_PIN_14;
+ 8001052: f44f 4380 mov.w r3, #16384 ; 0x4000
+ 8001056: 617b str r3, [r7, #20]
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ 8001058: 2301 movs r3, #1
+ 800105a: 61bb str r3, [r7, #24]
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 800105c: 2300 movs r3, #0
+ 800105e: 61fb str r3, [r7, #28]
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ 8001060: 2300 movs r3, #0
+ 8001062: 623b str r3, [r7, #32]
+ HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+ 8001064: f107 0314 add.w r3, r7, #20
+ 8001068: 4619 mov r1, r3
+ 800106a: 4804 ldr r0, [pc, #16] ; (800107c )
+ 800106c: f001 fc6e bl 800294c
+
+}
+ 8001070: bf00 nop
+ 8001072: 3728 adds r7, #40 ; 0x28
+ 8001074: 46bd mov sp, r7
+ 8001076: bd80 pop {r7, pc}
+ 8001078: 40023800 .word 0x40023800
+ 800107c: 40020800 .word 0x40020800
+
+08001080 :
+/**
+ * @brief This function is executed in case of error occurrence.
+ * @retval None
+ */
+void Error_Handler(void)
+{
+ 8001080: b480 push {r7}
+ 8001082: af00 add r7, sp, #0
+ \details Disables IRQ interrupts by setting the I-bit in the CPSR.
+ Can only be executed in Privileged modes.
+ */
+__STATIC_FORCEINLINE void __disable_irq(void)
+{
+ __ASM volatile ("cpsid i" : : : "memory");
+ 8001084: b672 cpsid i
+}
+ 8001086: bf00 nop
+ /* USER CODE BEGIN Error_Handler_Debug */
+ /* User can add his own implementation to report the HAL error return state */
+ __disable_irq();
+ while (1)
+ 8001088: e7fe b.n 8001088
+ ...
+
+0800108c :
+/* USER CODE END 0 */
+/**
+ * Initializes the Global MSP.
+ */
+void HAL_MspInit(void)
+{
+ 800108c: b480 push {r7}
+ 800108e: b083 sub sp, #12
+ 8001090: af00 add r7, sp, #0
+ /* USER CODE BEGIN MspInit 0 */
+
+ /* USER CODE END MspInit 0 */
+
+ __HAL_RCC_SYSCFG_CLK_ENABLE();
+ 8001092: 2300 movs r3, #0
+ 8001094: 607b str r3, [r7, #4]
+ 8001096: 4b10 ldr r3, [pc, #64] ; (80010d8 )
+ 8001098: 6c5b ldr r3, [r3, #68] ; 0x44
+ 800109a: 4a0f ldr r2, [pc, #60] ; (80010d8 )
+ 800109c: f443 4380 orr.w r3, r3, #16384 ; 0x4000
+ 80010a0: 6453 str r3, [r2, #68] ; 0x44
+ 80010a2: 4b0d ldr r3, [pc, #52] ; (80010d8 )
+ 80010a4: 6c5b ldr r3, [r3, #68] ; 0x44
+ 80010a6: f403 4380 and.w r3, r3, #16384 ; 0x4000
+ 80010aa: 607b str r3, [r7, #4]
+ 80010ac: 687b ldr r3, [r7, #4]
+ __HAL_RCC_PWR_CLK_ENABLE();
+ 80010ae: 2300 movs r3, #0
+ 80010b0: 603b str r3, [r7, #0]
+ 80010b2: 4b09 ldr r3, [pc, #36] ; (80010d8 )
+ 80010b4: 6c1b ldr r3, [r3, #64] ; 0x40
+ 80010b6: 4a08 ldr r2, [pc, #32] ; (80010d8 )
+ 80010b8: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
+ 80010bc: 6413 str r3, [r2, #64] ; 0x40
+ 80010be: 4b06 ldr r3, [pc, #24] ; (80010d8 )
+ 80010c0: 6c1b ldr r3, [r3, #64] ; 0x40
+ 80010c2: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
+ 80010c6: 603b str r3, [r7, #0]
+ 80010c8: 683b ldr r3, [r7, #0]
+ /* System interrupt init*/
+
+ /* USER CODE BEGIN MspInit 1 */
+
+ /* USER CODE END MspInit 1 */
+}
+ 80010ca: bf00 nop
+ 80010cc: 370c adds r7, #12
+ 80010ce: 46bd mov sp, r7
+ 80010d0: f85d 7b04 ldr.w r7, [sp], #4
+ 80010d4: 4770 bx lr
+ 80010d6: bf00 nop
+ 80010d8: 40023800 .word 0x40023800
+
+080010dc :
+/******************************************************************************/
+/**
+ * @brief This function handles Non maskable interrupt.
+ */
+void NMI_Handler(void)
+{
+ 80010dc: b480 push {r7}
+ 80010de: af00 add r7, sp, #0
+ /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
+
+ /* USER CODE END NonMaskableInt_IRQn 0 */
+ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
+ while (1)
+ 80010e0: e7fe b.n 80010e0
+
+080010e2 :
+
+/**
+ * @brief This function handles Hard fault interrupt.
+ */
+void HardFault_Handler(void)
+{
+ 80010e2: b480 push {r7}
+ 80010e4: af00 add r7, sp, #0
+ /* USER CODE BEGIN HardFault_IRQn 0 */
+
+ /* USER CODE END HardFault_IRQn 0 */
+ while (1)
+ 80010e6: e7fe b.n 80010e6
+
+080010e8 :
+
+/**
+ * @brief This function handles Memory management fault.
+ */
+void MemManage_Handler(void)
+{
+ 80010e8: b480 push {r7}
+ 80010ea: af00 add r7, sp, #0
+ /* USER CODE BEGIN MemoryManagement_IRQn 0 */
+
+ /* USER CODE END MemoryManagement_IRQn 0 */
+ while (1)
+ 80010ec: e7fe b.n 80010ec
+
+080010ee :
+
+/**
+ * @brief This function handles Pre-fetch fault, memory access fault.
+ */
+void BusFault_Handler(void)
+{
+ 80010ee: b480 push {r7}
+ 80010f0: af00 add r7, sp, #0
+ /* USER CODE BEGIN BusFault_IRQn 0 */
+
+ /* USER CODE END BusFault_IRQn 0 */
+ while (1)
+ 80010f2: e7fe b.n 80010f2
+
+080010f4 :
+
+/**
+ * @brief This function handles Undefined instruction or illegal state.
+ */
+void UsageFault_Handler(void)
+{
+ 80010f4: b480 push {r7}
+ 80010f6: af00 add r7, sp, #0
+ /* USER CODE BEGIN UsageFault_IRQn 0 */
+
+ /* USER CODE END UsageFault_IRQn 0 */
+ while (1)
+ 80010f8: e7fe b.n 80010f8
+
+080010fa :
+
+/**
+ * @brief This function handles System service call via SWI instruction.
+ */
+void SVC_Handler(void)
+{
+ 80010fa: b480 push {r7}
+ 80010fc: af00 add r7, sp, #0
+
+ /* USER CODE END SVCall_IRQn 0 */
+ /* USER CODE BEGIN SVCall_IRQn 1 */
+
+ /* USER CODE END SVCall_IRQn 1 */
+}
+ 80010fe: bf00 nop
+ 8001100: 46bd mov sp, r7
+ 8001102: f85d 7b04 ldr.w r7, [sp], #4
+ 8001106: 4770 bx lr
+
+08001108 :
+
+/**
+ * @brief This function handles Debug monitor.
+ */
+void DebugMon_Handler(void)
+{
+ 8001108: b480 push {r7}
+ 800110a: af00 add r7, sp, #0
+
+ /* USER CODE END DebugMonitor_IRQn 0 */
+ /* USER CODE BEGIN DebugMonitor_IRQn 1 */
+
+ /* USER CODE END DebugMonitor_IRQn 1 */
+}
+ 800110c: bf00 nop
+ 800110e: 46bd mov sp, r7
+ 8001110: f85d 7b04 ldr.w r7, [sp], #4
+ 8001114: 4770 bx lr
+
+08001116 :
+
+/**
+ * @brief This function handles Pendable request for system service.
+ */
+void PendSV_Handler(void)
+{
+ 8001116: b480 push {r7}
+ 8001118: af00 add r7, sp, #0
+
+ /* USER CODE END PendSV_IRQn 0 */
+ /* USER CODE BEGIN PendSV_IRQn 1 */
+
+ /* USER CODE END PendSV_IRQn 1 */
+}
+ 800111a: bf00 nop
+ 800111c: 46bd mov sp, r7
+ 800111e: f85d 7b04 ldr.w r7, [sp], #4
+ 8001122: 4770 bx lr
+
+08001124 :
+
+/**
+ * @brief This function handles System tick timer.
+ */
+void SysTick_Handler(void)
+{
+ 8001124: b580 push {r7, lr}
+ 8001126: af00 add r7, sp, #0
+ /* USER CODE BEGIN SysTick_IRQn 0 */
+
+ /* USER CODE END SysTick_IRQn 0 */
+ HAL_IncTick();
+ 8001128: f000 f9f0 bl 800150c
+ /* USER CODE BEGIN SysTick_IRQn 1 */
+
+ /* USER CODE END SysTick_IRQn 1 */
+}
+ 800112c: bf00 nop
+ 800112e: bd80 pop {r7, pc}
+
+08001130 :
+ * configuration.
+ * @param None
+ * @retval None
+ */
+void SystemInit(void)
+{
+ 8001130: b480 push {r7}
+ 8001132: af00 add r7, sp, #0
+ /* FPU settings ------------------------------------------------------------*/
+ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
+ SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
+ 8001134: 4b06 ldr r3, [pc, #24] ; (8001150 )
+ 8001136: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
+ 800113a: 4a05 ldr r2, [pc, #20] ; (8001150 )
+ 800113c: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000
+ 8001140: f8c2 3088 str.w r3, [r2, #136] ; 0x88
+
+ /* Configure the Vector Table location -------------------------------------*/
+#if defined(USER_VECT_TAB_ADDRESS)
+ SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
+#endif /* USER_VECT_TAB_ADDRESS */
+}
+ 8001144: bf00 nop
+ 8001146: 46bd mov sp, r7
+ 8001148: f85d 7b04 ldr.w r7, [sp], #4
+ 800114c: 4770 bx lr
+ 800114e: bf00 nop
+ 8001150: e000ed00 .word 0xe000ed00
+
+08001154 :
+
+ .section .text.Reset_Handler
+ .weak Reset_Handler
+ .type Reset_Handler, %function
+Reset_Handler:
+ ldr r0, =_estack
+ 8001154: 480d ldr r0, [pc, #52] ; (800118c )
+ mov sp, r0 /* set stack pointer */
+ 8001156: 4685 mov sp, r0
+/* Call the clock system initialization function.*/
+ bl SystemInit
+ 8001158: f7ff ffea bl 8001130
+
+/* Copy the data segment initializers from flash to SRAM */
+ ldr r0, =_sdata
+ 800115c: 480c ldr r0, [pc, #48] ; (8001190 )
+ ldr r1, =_edata
+ 800115e: 490d ldr r1, [pc, #52] ; (8001194 )
+ ldr r2, =_sidata
+ 8001160: 4a0d ldr r2, [pc, #52] ; (8001198 )
+ movs r3, #0
+ 8001162: 2300 movs r3, #0
+ b LoopCopyDataInit
+ 8001164: e002 b.n 800116c
+
+08001166 :
+
+CopyDataInit:
+ ldr r4, [r2, r3]
+ 8001166: 58d4 ldr r4, [r2, r3]
+ str r4, [r0, r3]
+ 8001168: 50c4 str r4, [r0, r3]
+ adds r3, r3, #4
+ 800116a: 3304 adds r3, #4
+
+0800116c :
+
+LoopCopyDataInit:
+ adds r4, r0, r3
+ 800116c: 18c4 adds r4, r0, r3
+ cmp r4, r1
+ 800116e: 428c cmp r4, r1
+ bcc CopyDataInit
+ 8001170: d3f9 bcc.n 8001166
+
+/* Zero fill the bss segment. */
+ ldr r2, =_sbss
+ 8001172: 4a0a ldr r2, [pc, #40] ; (800119c )
+ ldr r4, =_ebss
+ 8001174: 4c0a ldr r4, [pc, #40] ; (80011a0 )
+ movs r3, #0
+ 8001176: 2300 movs r3, #0
+ b LoopFillZerobss
+ 8001178: e001 b.n 800117e
+
+0800117a :
+
+FillZerobss:
+ str r3, [r2]
+ 800117a: 6013 str r3, [r2, #0]
+ adds r2, r2, #4
+ 800117c: 3204 adds r2, #4
+
+0800117e :
+
+LoopFillZerobss:
+ cmp r2, r4
+ 800117e: 42a2 cmp r2, r4
+ bcc FillZerobss
+ 8001180: d3fb bcc.n 800117a
+
+/* Call static constructors */
+ bl __libc_init_array
+ 8001182: f00e fe35 bl 800fdf0 <__libc_init_array>
+/* Call the application's entry point.*/
+ bl main
+ 8001186: f7ff fea1 bl 8000ecc
+
+0800118a :
+
+LoopForever:
+ b LoopForever
+ 800118a: e7fe b.n 800118a
+ ldr r0, =_estack
+ 800118c: 20030000 .word 0x20030000
+ ldr r0, =_sdata
+ 8001190: 20000000 .word 0x20000000
+ ldr r1, =_edata
+ 8001194: 200009e0 .word 0x200009e0
+ ldr r2, =_sidata
+ 8001198: 08017c88 .word 0x08017c88
+ ldr r2, =_sbss
+ 800119c: 200009e0 .word 0x200009e0
+ ldr r4, =_ebss
+ 80011a0: 20008d7c .word 0x20008d7c
+
+080011a4 :
+ * @retval : None
+*/
+ .section .text.Default_Handler,"ax",%progbits
+Default_Handler:
+Infinite_Loop:
+ b Infinite_Loop
+ 80011a4: e7fe b.n 80011a4
+
+080011a6 :
+ * @param ioctx: holds device IO functions.
+ * @retval DP83848_STATUS_OK if OK
+ * DP83848_STATUS_ERROR if missing mandatory function
+ */
+int32_t DP83848_RegisterBusIO(dp83848_Object_t *pObj, dp83848_IOCtx_t *ioctx)
+{
+ 80011a6: b480 push {r7}
+ 80011a8: b083 sub sp, #12
+ 80011aa: af00 add r7, sp, #0
+ 80011ac: 6078 str r0, [r7, #4]
+ 80011ae: 6039 str r1, [r7, #0]
+ if(!pObj || !ioctx->ReadReg || !ioctx->WriteReg || !ioctx->GetTick)
+ 80011b0: 687b ldr r3, [r7, #4]
+ 80011b2: 2b00 cmp r3, #0
+ 80011b4: d00b beq.n 80011ce
+ 80011b6: 683b ldr r3, [r7, #0]
+ 80011b8: 68db ldr r3, [r3, #12]
+ 80011ba: 2b00 cmp r3, #0
+ 80011bc: d007 beq.n 80011ce
+ 80011be: 683b ldr r3, [r7, #0]
+ 80011c0: 689b ldr r3, [r3, #8]
+ 80011c2: 2b00 cmp r3, #0
+ 80011c4: d003 beq.n 80011ce
+ 80011c6: 683b ldr r3, [r7, #0]
+ 80011c8: 691b ldr r3, [r3, #16]
+ 80011ca: 2b00 cmp r3, #0
+ 80011cc: d102 bne.n 80011d4
+ {
+ return DP83848_STATUS_ERROR;
+ 80011ce: f04f 33ff mov.w r3, #4294967295
+ 80011d2: e014 b.n 80011fe
+ }
+
+ pObj->IO.Init = ioctx->Init;
+ 80011d4: 683b ldr r3, [r7, #0]
+ 80011d6: 681a ldr r2, [r3, #0]
+ 80011d8: 687b ldr r3, [r7, #4]
+ 80011da: 609a str r2, [r3, #8]
+ pObj->IO.DeInit = ioctx->DeInit;
+ 80011dc: 683b ldr r3, [r7, #0]
+ 80011de: 685a ldr r2, [r3, #4]
+ 80011e0: 687b ldr r3, [r7, #4]
+ 80011e2: 60da str r2, [r3, #12]
+ pObj->IO.ReadReg = ioctx->ReadReg;
+ 80011e4: 683b ldr r3, [r7, #0]
+ 80011e6: 68da ldr r2, [r3, #12]
+ 80011e8: 687b ldr r3, [r7, #4]
+ 80011ea: 615a str r2, [r3, #20]
+ pObj->IO.WriteReg = ioctx->WriteReg;
+ 80011ec: 683b ldr r3, [r7, #0]
+ 80011ee: 689a ldr r2, [r3, #8]
+ 80011f0: 687b ldr r3, [r7, #4]
+ 80011f2: 611a str r2, [r3, #16]
+ pObj->IO.GetTick = ioctx->GetTick;
+ 80011f4: 683b ldr r3, [r7, #0]
+ 80011f6: 691a ldr r2, [r3, #16]
+ 80011f8: 687b ldr r3, [r7, #4]
+ 80011fa: 619a str r2, [r3, #24]
+
+ return DP83848_STATUS_OK;
+ 80011fc: 2300 movs r3, #0
+}
+ 80011fe: 4618 mov r0, r3
+ 8001200: 370c adds r7, #12
+ 8001202: 46bd mov sp, r7
+ 8001204: f85d 7b04 ldr.w r7, [sp], #4
+ 8001208: 4770 bx lr
+
+0800120a :
+ * DP83848_STATUS_READ_ERROR if connot read register
+ * DP83848_STATUS_WRITE_ERROR if connot write to register
+ * DP83848_STATUS_RESET_TIMEOUT if cannot perform a software reset
+ */
+ int32_t DP83848_Init(dp83848_Object_t *pObj)
+ {
+ 800120a: b580 push {r7, lr}
+ 800120c: b086 sub sp, #24
+ 800120e: af00 add r7, sp, #0
+ 8001210: 6078 str r0, [r7, #4]
+ uint32_t tickstart = 0, regvalue = 0, addr = 0;
+ 8001212: 2300 movs r3, #0
+ 8001214: 60fb str r3, [r7, #12]
+ 8001216: 2300 movs r3, #0
+ 8001218: 60bb str r3, [r7, #8]
+ 800121a: 2300 movs r3, #0
+ 800121c: 617b str r3, [r7, #20]
+ int32_t status = DP83848_STATUS_OK;
+ 800121e: 2300 movs r3, #0
+ 8001220: 613b str r3, [r7, #16]
+
+ if(pObj->Is_Initialized == 0)
+ 8001222: 687b ldr r3, [r7, #4]
+ 8001224: 685b ldr r3, [r3, #4]
+ 8001226: 2b00 cmp r3, #0
+ 8001228: d17c bne.n 8001324
+ {
+ if(pObj->IO.Init != 0)
+ 800122a: 687b ldr r3, [r7, #4]
+ 800122c: 689b ldr r3, [r3, #8]
+ 800122e: 2b00 cmp r3, #0
+ 8001230: d002 beq.n 8001238
+ {
+ /* GPIO and Clocks initialization */
+ pObj->IO.Init();
+ 8001232: 687b ldr r3, [r7, #4]
+ 8001234: 689b ldr r3, [r3, #8]
+ 8001236: 4798 blx r3
+ }
+
+ /* for later check */
+ pObj->DevAddr = DP83848_MAX_DEV_ADDR + 1;
+ 8001238: 687b ldr r3, [r7, #4]
+ 800123a: 2220 movs r2, #32
+ 800123c: 601a str r2, [r3, #0]
+
+ /* Get the device address from special mode register */
+ for(addr = 0; addr <= DP83848_MAX_DEV_ADDR; addr ++)
+ 800123e: 2300 movs r3, #0
+ 8001240: 617b str r3, [r7, #20]
+ 8001242: e01c b.n 800127e
+ {
+ if(pObj->IO.ReadReg(addr, DP83848_SMR, ®value) < 0)
+ 8001244: 687b ldr r3, [r7, #4]
+ 8001246: 695b ldr r3, [r3, #20]
+ 8001248: f107 0208 add.w r2, r7, #8
+ 800124c: 2119 movs r1, #25
+ 800124e: 6978 ldr r0, [r7, #20]
+ 8001250: 4798 blx r3
+ 8001252: 4603 mov r3, r0
+ 8001254: 2b00 cmp r3, #0
+ 8001256: da03 bge.n 8001260
+ {
+ status = DP83848_STATUS_READ_ERROR;
+ 8001258: f06f 0304 mvn.w r3, #4
+ 800125c: 613b str r3, [r7, #16]
+ /* Can't read from this device address
+ continue with next address */
+ continue;
+ 800125e: e00b b.n 8001278
+ }
+
+ if((regvalue & DP83848_SMR_PHY_ADDR) == addr)
+ 8001260: 68bb ldr r3, [r7, #8]
+ 8001262: f003 031f and.w r3, r3, #31
+ 8001266: 697a ldr r2, [r7, #20]
+ 8001268: 429a cmp r2, r3
+ 800126a: d105 bne.n 8001278
+ {
+ pObj->DevAddr = addr;
+ 800126c: 687b ldr r3, [r7, #4]
+ 800126e: 697a ldr r2, [r7, #20]
+ 8001270: 601a str r2, [r3, #0]
+ status = DP83848_STATUS_OK;
+ 8001272: 2300 movs r3, #0
+ 8001274: 613b str r3, [r7, #16]
+ break;
+ 8001276: e005 b.n 8001284
+ for(addr = 0; addr <= DP83848_MAX_DEV_ADDR; addr ++)
+ 8001278: 697b ldr r3, [r7, #20]
+ 800127a: 3301 adds r3, #1
+ 800127c: 617b str r3, [r7, #20]
+ 800127e: 697b ldr r3, [r7, #20]
+ 8001280: 2b1f cmp r3, #31
+ 8001282: d9df bls.n 8001244
+ }
+ }
+
+ if(pObj->DevAddr > DP83848_MAX_DEV_ADDR)
+ 8001284: 687b ldr r3, [r7, #4]
+ 8001286: 681b ldr r3, [r3, #0]
+ 8001288: 2b1f cmp r3, #31
+ 800128a: d902 bls.n 8001292
+ {
+ status = DP83848_STATUS_ADDRESS_ERROR;
+ 800128c: f06f 0302 mvn.w r3, #2
+ 8001290: 613b str r3, [r7, #16]
+ }
+
+ /* if device address is matched */
+ if(status == DP83848_STATUS_OK)
+ 8001292: 693b ldr r3, [r7, #16]
+ 8001294: 2b00 cmp r3, #0
+ 8001296: d145 bne.n 8001324
+ {
+ /* set a software reset */
+ if(pObj->IO.WriteReg(pObj->DevAddr, DP83848_BCR, DP83848_BCR_SOFT_RESET) >= 0)
+ 8001298: 687b ldr r3, [r7, #4]
+ 800129a: 691b ldr r3, [r3, #16]
+ 800129c: 687a ldr r2, [r7, #4]
+ 800129e: 6810 ldr r0, [r2, #0]
+ 80012a0: f44f 4200 mov.w r2, #32768 ; 0x8000
+ 80012a4: 2100 movs r1, #0
+ 80012a6: 4798 blx r3
+ 80012a8: 4603 mov r3, r0
+ 80012aa: 2b00 cmp r3, #0
+ 80012ac: db37 blt.n 800131e
+ {
+ /* get software reset status */
+ if(pObj->IO.ReadReg(pObj->DevAddr, DP83848_BCR, ®value) >= 0)
+ 80012ae: 687b ldr r3, [r7, #4]
+ 80012b0: 695b ldr r3, [r3, #20]
+ 80012b2: 687a ldr r2, [r7, #4]
+ 80012b4: 6810 ldr r0, [r2, #0]
+ 80012b6: f107 0208 add.w r2, r7, #8
+ 80012ba: 2100 movs r1, #0
+ 80012bc: 4798 blx r3
+ 80012be: 4603 mov r3, r0
+ 80012c0: 2b00 cmp r3, #0
+ 80012c2: db28 blt.n 8001316
+ {
+ tickstart = pObj->IO.GetTick();
+ 80012c4: 687b ldr r3, [r7, #4]
+ 80012c6: 699b ldr r3, [r3, #24]
+ 80012c8: 4798 blx r3
+ 80012ca: 4603 mov r3, r0
+ 80012cc: 60fb str r3, [r7, #12]
+
+ /* wait until software reset is done or timeout occured */
+ while(regvalue & DP83848_BCR_SOFT_RESET)
+ 80012ce: e01c b.n 800130a
+ {
+ if((pObj->IO.GetTick() - tickstart) <= DP83848_SW_RESET_TO)
+ 80012d0: 687b ldr r3, [r7, #4]
+ 80012d2: 699b ldr r3, [r3, #24]
+ 80012d4: 4798 blx r3
+ 80012d6: 4603 mov r3, r0
+ 80012d8: 461a mov r2, r3
+ 80012da: 68fb ldr r3, [r7, #12]
+ 80012dc: 1ad3 subs r3, r2, r3
+ 80012de: f5b3 7ffa cmp.w r3, #500 ; 0x1f4
+ 80012e2: d80e bhi.n 8001302
+ {
+ if(pObj->IO.ReadReg(pObj->DevAddr, DP83848_BCR, ®value) < 0)
+ 80012e4: 687b ldr r3, [r7, #4]
+ 80012e6: 695b ldr r3, [r3, #20]
+ 80012e8: 687a ldr r2, [r7, #4]
+ 80012ea: 6810 ldr r0, [r2, #0]
+ 80012ec: f107 0208 add.w r2, r7, #8
+ 80012f0: 2100 movs r1, #0
+ 80012f2: 4798 blx r3
+ 80012f4: 4603 mov r3, r0
+ 80012f6: 2b00 cmp r3, #0
+ 80012f8: da07 bge.n 800130a
+ {
+ status = DP83848_STATUS_READ_ERROR;
+ 80012fa: f06f 0304 mvn.w r3, #4
+ 80012fe: 613b str r3, [r7, #16]
+ break;
+ 8001300: e010 b.n 8001324
+ }
+ }
+ else
+ {
+ status = DP83848_STATUS_RESET_TIMEOUT;
+ 8001302: f06f 0301 mvn.w r3, #1
+ 8001306: 613b str r3, [r7, #16]
+ break;
+ 8001308: e00c b.n 8001324
+ while(regvalue & DP83848_BCR_SOFT_RESET)
+ 800130a: 68bb ldr r3, [r7, #8]
+ 800130c: f403 4300 and.w r3, r3, #32768 ; 0x8000
+ 8001310: 2b00 cmp r3, #0
+ 8001312: d1dd bne.n 80012d0
+ 8001314: e006 b.n 8001324
+ }
+ }
+ }
+ else
+ {
+ status = DP83848_STATUS_READ_ERROR;
+ 8001316: f06f 0304 mvn.w r3, #4
+ 800131a: 613b str r3, [r7, #16]
+ 800131c: e002 b.n 8001324
+ }
+ }
+ else
+ {
+ status = DP83848_STATUS_WRITE_ERROR;
+ 800131e: f06f 0303 mvn.w r3, #3
+ 8001322: 613b str r3, [r7, #16]
+ }
+ }
+ }
+
+ if(status == DP83848_STATUS_OK)
+ 8001324: 693b ldr r3, [r7, #16]
+ 8001326: 2b00 cmp r3, #0
+ 8001328: d112 bne.n 8001350
+ {
+ tickstart = pObj->IO.GetTick();
+ 800132a: 687b ldr r3, [r7, #4]
+ 800132c: 699b ldr r3, [r3, #24]
+ 800132e: 4798 blx r3
+ 8001330: 4603 mov r3, r0
+ 8001332: 60fb str r3, [r7, #12]
+
+ /* Wait for 2s to perform initialization */
+ while((pObj->IO.GetTick() - tickstart) <= DP83848_INIT_TO)
+ 8001334: bf00 nop
+ 8001336: 687b ldr r3, [r7, #4]
+ 8001338: 699b ldr r3, [r3, #24]
+ 800133a: 4798 blx r3
+ 800133c: 4603 mov r3, r0
+ 800133e: 461a mov r2, r3
+ 8001340: 68fb ldr r3, [r7, #12]
+ 8001342: 1ad3 subs r3, r2, r3
+ 8001344: f5b3 6ffa cmp.w r3, #2000 ; 0x7d0
+ 8001348: d9f5 bls.n 8001336
+ {
+ }
+ pObj->Is_Initialized = 1;
+ 800134a: 687b ldr r3, [r7, #4]
+ 800134c: 2201 movs r2, #1
+ 800134e: 605a str r2, [r3, #4]
+ }
+
+
+ return status;
+ 8001350: 693b ldr r3, [r7, #16]
+ }
+ 8001352: 4618 mov r0, r3
+ 8001354: 3718 adds r7, #24
+ 8001356: 46bd mov sp, r7
+ 8001358: bd80 pop {r7, pc}
+
+0800135a :
+ * DP83848_STATUS_10MBITS_HALFDUPLEX if 10Mb/s HD
+ * DP83848_STATUS_READ_ERROR if connot read register
+ * DP83848_STATUS_WRITE_ERROR if connot write to register
+ */
+int32_t DP83848_GetLinkState(dp83848_Object_t *pObj)
+{
+ 800135a: b580 push {r7, lr}
+ 800135c: b084 sub sp, #16
+ 800135e: af00 add r7, sp, #0
+ 8001360: 6078 str r0, [r7, #4]
+ uint32_t readval = 0;
+ 8001362: 2300 movs r3, #0
+ 8001364: 60fb str r3, [r7, #12]
+
+ /* Read Status register */
+ if(pObj->IO.ReadReg(pObj->DevAddr, DP83848_BSR, &readval) < 0)
+ 8001366: 687b ldr r3, [r7, #4]
+ 8001368: 695b ldr r3, [r3, #20]
+ 800136a: 687a ldr r2, [r7, #4]
+ 800136c: 6810 ldr r0, [r2, #0]
+ 800136e: f107 020c add.w r2, r7, #12
+ 8001372: 2101 movs r1, #1
+ 8001374: 4798 blx r3
+ 8001376: 4603 mov r3, r0
+ 8001378: 2b00 cmp r3, #0
+ 800137a: da02 bge.n 8001382
+ {
+ return DP83848_STATUS_READ_ERROR;
+ 800137c: f06f 0304 mvn.w r3, #4
+ 8001380: e06e b.n 8001460
+ }
+
+ /* Read Status register again */
+ if(pObj->IO.ReadReg(pObj->DevAddr, DP83848_BSR, &readval) < 0)
+ 8001382: 687b ldr r3, [r7, #4]
+ 8001384: 695b ldr r3, [r3, #20]
+ 8001386: 687a ldr r2, [r7, #4]
+ 8001388: 6810 ldr r0, [r2, #0]
+ 800138a: f107 020c add.w r2, r7, #12
+ 800138e: 2101 movs r1, #1
+ 8001390: 4798 blx r3
+ 8001392: 4603 mov r3, r0
+ 8001394: 2b00 cmp r3, #0
+ 8001396: da02 bge.n 800139e
+ {
+ return DP83848_STATUS_READ_ERROR;
+ 8001398: f06f 0304 mvn.w r3, #4
+ 800139c: e060 b.n 8001460
+ }
+
+ if((readval & DP83848_BSR_LINK_STATUS) == 0)
+ 800139e: 68fb ldr r3, [r7, #12]
+ 80013a0: f003 0304 and.w r3, r3, #4
+ 80013a4: 2b00 cmp r3, #0
+ 80013a6: d101 bne.n 80013ac
+ {
+ /* Return Link Down status */
+ return DP83848_STATUS_LINK_DOWN;
+ 80013a8: 2301 movs r3, #1
+ 80013aa: e059 b.n 8001460
+ }
+
+ /* Check Auto negotiaition */
+ if(pObj->IO.ReadReg(pObj->DevAddr, DP83848_BCR, &readval) < 0)
+ 80013ac: 687b ldr r3, [r7, #4]
+ 80013ae: 695b ldr r3, [r3, #20]
+ 80013b0: 687a ldr r2, [r7, #4]
+ 80013b2: 6810 ldr r0, [r2, #0]
+ 80013b4: f107 020c add.w r2, r7, #12
+ 80013b8: 2100 movs r1, #0
+ 80013ba: 4798 blx r3
+ 80013bc: 4603 mov r3, r0
+ 80013be: 2b00 cmp r3, #0
+ 80013c0: da02 bge.n 80013c8
+ {
+ return DP83848_STATUS_READ_ERROR;
+ 80013c2: f06f 0304 mvn.w r3, #4
+ 80013c6: e04b b.n 8001460
+ }
+
+ if((readval & DP83848_BCR_AUTONEGO_EN) != DP83848_BCR_AUTONEGO_EN)
+ 80013c8: 68fb ldr r3, [r7, #12]
+ 80013ca: f403 5380 and.w r3, r3, #4096 ; 0x1000
+ 80013ce: 2b00 cmp r3, #0
+ 80013d0: d11b bne.n 800140a
+ {
+ if(((readval & DP83848_BCR_SPEED_SELECT) == DP83848_BCR_SPEED_SELECT) && ((readval & DP83848_BCR_DUPLEX_MODE) == DP83848_BCR_DUPLEX_MODE))
+ 80013d2: 68fb ldr r3, [r7, #12]
+ 80013d4: f403 5300 and.w r3, r3, #8192 ; 0x2000
+ 80013d8: 2b00 cmp r3, #0
+ 80013da: d006 beq.n 80013ea
+ 80013dc: 68fb ldr r3, [r7, #12]
+ 80013de: f403 7380 and.w r3, r3, #256 ; 0x100
+ 80013e2: 2b00 cmp r3, #0
+ 80013e4: d001 beq.n 80013ea
+ {
+ return DP83848_STATUS_100MBITS_FULLDUPLEX;
+ 80013e6: 2302 movs r3, #2
+ 80013e8: e03a b.n 8001460
+ }
+ else if ((readval & DP83848_BCR_SPEED_SELECT) == DP83848_BCR_SPEED_SELECT)
+ 80013ea: 68fb ldr r3, [r7, #12]
+ 80013ec: f403 5300 and.w r3, r3, #8192 ; 0x2000
+ 80013f0: 2b00 cmp r3, #0
+ 80013f2: d001 beq.n 80013f8
+ {
+ return DP83848_STATUS_100MBITS_HALFDUPLEX;
+ 80013f4: 2303 movs r3, #3
+ 80013f6: e033 b.n 8001460
+ }
+ else if ((readval & DP83848_BCR_DUPLEX_MODE) == DP83848_BCR_DUPLEX_MODE)
+ 80013f8: 68fb ldr r3, [r7, #12]
+ 80013fa: f403 7380 and.w r3, r3, #256 ; 0x100
+ 80013fe: 2b00 cmp r3, #0
+ 8001400: d001 beq.n 8001406
+ {
+ return DP83848_STATUS_10MBITS_FULLDUPLEX;
+ 8001402: 2304 movs r3, #4
+ 8001404: e02c b.n 8001460
+ }
+ else
+ {
+ return DP83848_STATUS_10MBITS_HALFDUPLEX;
+ 8001406: 2305 movs r3, #5
+ 8001408: e02a b.n 8001460
+ }
+ }
+ else /* Auto Nego enabled */
+ {
+ if(pObj->IO.ReadReg(pObj->DevAddr, DP83848_PHYSCSR, &readval) < 0)
+ 800140a: 687b ldr r3, [r7, #4]
+ 800140c: 695b ldr r3, [r3, #20]
+ 800140e: 687a ldr r2, [r7, #4]
+ 8001410: 6810 ldr r0, [r2, #0]
+ 8001412: f107 020c add.w r2, r7, #12
+ 8001416: 2110 movs r1, #16
+ 8001418: 4798 blx r3
+ 800141a: 4603 mov r3, r0
+ 800141c: 2b00 cmp r3, #0
+ 800141e: da02 bge.n 8001426
+ {
+ return DP83848_STATUS_READ_ERROR;
+ 8001420: f06f 0304 mvn.w r3, #4
+ 8001424: e01c b.n 8001460
+ }
+
+ /* Check if auto nego not done */
+ if((readval & DP83848_PHYSCSR_AUTONEGO_DONE) == 0)
+ 8001426: 68fb ldr r3, [r7, #12]
+ 8001428: f403 7380 and.w r3, r3, #256 ; 0x100
+ 800142c: 2b00 cmp r3, #0
+ 800142e: d101 bne.n 8001434
+ {
+ return DP83848_STATUS_AUTONEGO_NOTDONE;
+ 8001430: 2306 movs r3, #6
+ 8001432: e015 b.n 8001460
+ }
+
+ if((readval & DP83848_PHYSCSR_HCDSPEEDMASK) == DP83848_PHYSCSR_100BTX_FD)
+ 8001434: 68fb ldr r3, [r7, #12]
+ 8001436: f003 0306 and.w r3, r3, #6
+ 800143a: 2b04 cmp r3, #4
+ 800143c: d101 bne.n 8001442
+ {
+ return DP83848_STATUS_100MBITS_FULLDUPLEX;
+ 800143e: 2302 movs r3, #2
+ 8001440: e00e b.n 8001460
+ }
+ else if ((readval & DP83848_PHYSCSR_HCDSPEEDMASK) == DP83848_PHYSCSR_100BTX_HD)
+ 8001442: 68fb ldr r3, [r7, #12]
+ 8001444: f003 0306 and.w r3, r3, #6
+ 8001448: 2b00 cmp r3, #0
+ 800144a: d101 bne.n 8001450
+ {
+ return DP83848_STATUS_100MBITS_HALFDUPLEX;
+ 800144c: 2303 movs r3, #3
+ 800144e: e007 b.n 8001460
+ }
+ else if ((readval & DP83848_PHYSCSR_HCDSPEEDMASK) == DP83848_PHYSCSR_10BT_FD)
+ 8001450: 68fb ldr r3, [r7, #12]
+ 8001452: f003 0306 and.w r3, r3, #6
+ 8001456: 2b06 cmp r3, #6
+ 8001458: d101 bne.n 800145e
+ {
+ return DP83848_STATUS_10MBITS_FULLDUPLEX;
+ 800145a: 2304 movs r3, #4
+ 800145c: e000 b.n 8001460
+ }
+ else
+ {
+ return DP83848_STATUS_10MBITS_HALFDUPLEX;
+ 800145e: 2305 movs r3, #5
+ }
+ }
+}
+ 8001460: 4618 mov r0, r3
+ 8001462: 3710 adds r7, #16
+ 8001464: 46bd mov sp, r7
+ 8001466: bd80 pop {r7, pc}
+
+08001468 :
+ * need to ensure that the SysTick time base is always set to 1 millisecond
+ * to have correct HAL operation.
+ * @retval HAL status
+ */
+HAL_StatusTypeDef HAL_Init(void)
+{
+ 8001468: b580 push {r7, lr}
+ 800146a: af00 add r7, sp, #0
+ /* Configure Flash prefetch, Instruction cache, Data cache */
+#if (INSTRUCTION_CACHE_ENABLE != 0U)
+ __HAL_FLASH_INSTRUCTION_CACHE_ENABLE();
+ 800146c: 4b0e ldr r3, [pc, #56] ; (80014a8 )
+ 800146e: 681b ldr r3, [r3, #0]
+ 8001470: 4a0d ldr r2, [pc, #52] ; (80014a8 )
+ 8001472: f443 7300 orr.w r3, r3, #512 ; 0x200
+ 8001476: 6013 str r3, [r2, #0]
+#endif /* INSTRUCTION_CACHE_ENABLE */
+
+#if (DATA_CACHE_ENABLE != 0U)
+ __HAL_FLASH_DATA_CACHE_ENABLE();
+ 8001478: 4b0b ldr r3, [pc, #44] ; (80014a8 )
+ 800147a: 681b ldr r3, [r3, #0]
+ 800147c: 4a0a ldr r2, [pc, #40] ; (80014a8 )
+ 800147e: f443 6380 orr.w r3, r3, #1024 ; 0x400
+ 8001482: 6013 str r3, [r2, #0]
+#endif /* DATA_CACHE_ENABLE */
+
+#if (PREFETCH_ENABLE != 0U)
+ __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
+ 8001484: 4b08 ldr r3, [pc, #32] ; (80014a8 )
+ 8001486: 681b ldr r3, [r3, #0]
+ 8001488: 4a07 ldr r2, [pc, #28] ; (80014a8 )
+ 800148a: f443 7380 orr.w r3, r3, #256 ; 0x100
+ 800148e: 6013 str r3, [r2, #0]
+#endif /* PREFETCH_ENABLE */
+
+ /* Set Interrupt Group Priority */
+ HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
+ 8001490: 2003 movs r0, #3
+ 8001492: f000 f931 bl 80016f8
+
+ /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */
+ HAL_InitTick(TICK_INT_PRIORITY);
+ 8001496: 200f movs r0, #15
+ 8001498: f000 f808 bl 80014ac
+
+ /* Init the low level hardware */
+ HAL_MspInit();
+ 800149c: f7ff fdf6 bl 800108c
+
+ /* Return function status */
+ return HAL_OK;
+ 80014a0: 2300 movs r3, #0
+}
+ 80014a2: 4618 mov r0, r3
+ 80014a4: bd80 pop {r7, pc}
+ 80014a6: bf00 nop
+ 80014a8: 40023c00 .word 0x40023c00
+
+080014ac :
+ * implementation in user file.
+ * @param TickPriority Tick interrupt priority.
+ * @retval HAL status
+ */
+__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
+{
+ 80014ac: b580 push {r7, lr}
+ 80014ae: b082 sub sp, #8
+ 80014b0: af00 add r7, sp, #0
+ 80014b2: 6078 str r0, [r7, #4]
+ /* Configure the SysTick to have interrupt in 1ms time basis*/
+ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
+ 80014b4: 4b12 ldr r3, [pc, #72] ; (8001500 )
+ 80014b6: 681a ldr r2, [r3, #0]
+ 80014b8: 4b12 ldr r3, [pc, #72] ; (8001504 )
+ 80014ba: 781b ldrb r3, [r3, #0]
+ 80014bc: 4619 mov r1, r3
+ 80014be: f44f 737a mov.w r3, #1000 ; 0x3e8
+ 80014c2: fbb3 f3f1 udiv r3, r3, r1
+ 80014c6: fbb2 f3f3 udiv r3, r2, r3
+ 80014ca: 4618 mov r0, r3
+ 80014cc: f000 f93b bl 8001746
+ 80014d0: 4603 mov r3, r0
+ 80014d2: 2b00 cmp r3, #0
+ 80014d4: d001 beq.n 80014da
+ {
+ return HAL_ERROR;
+ 80014d6: 2301 movs r3, #1
+ 80014d8: e00e b.n 80014f8
+ }
+
+ /* Configure the SysTick IRQ priority */
+ if (TickPriority < (1UL << __NVIC_PRIO_BITS))
+ 80014da: 687b ldr r3, [r7, #4]
+ 80014dc: 2b0f cmp r3, #15
+ 80014de: d80a bhi.n 80014f6
+ {
+ HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
+ 80014e0: 2200 movs r2, #0
+ 80014e2: 6879 ldr r1, [r7, #4]
+ 80014e4: f04f 30ff mov.w r0, #4294967295
+ 80014e8: f000 f911 bl 800170e
+ uwTickPrio = TickPriority;
+ 80014ec: 4a06 ldr r2, [pc, #24] ; (8001508 )
+ 80014ee: 687b ldr r3, [r7, #4]
+ 80014f0: 6013 str r3, [r2, #0]
+ {
+ return HAL_ERROR;
+ }
+
+ /* Return function status */
+ return HAL_OK;
+ 80014f2: 2300 movs r3, #0
+ 80014f4: e000 b.n 80014f8
+ return HAL_ERROR;
+ 80014f6: 2301 movs r3, #1
+}
+ 80014f8: 4618 mov r0, r3
+ 80014fa: 3708 adds r7, #8
+ 80014fc: 46bd mov sp, r7
+ 80014fe: bd80 pop {r7, pc}
+ 8001500: 20000000 .word 0x20000000
+ 8001504: 20000008 .word 0x20000008
+ 8001508: 20000004 .word 0x20000004
+
+0800150c :
+ * @note This function is declared as __weak to be overwritten in case of other
+ * implementations in user file.
+ * @retval None
+ */
+__weak void HAL_IncTick(void)
+{
+ 800150c: b480 push {r7}
+ 800150e: af00 add r7, sp, #0
+ uwTick += uwTickFreq;
+ 8001510: 4b06 ldr r3, [pc, #24] ; (800152c )
+ 8001512: 781b ldrb r3, [r3, #0]
+ 8001514: 461a mov r2, r3
+ 8001516: 4b06 ldr r3, [pc, #24] ; (8001530 )
+ 8001518: 681b ldr r3, [r3, #0]
+ 800151a: 4413 add r3, r2
+ 800151c: 4a04 ldr r2, [pc, #16] ; (8001530 )
+ 800151e: 6013 str r3, [r2, #0]
+}
+ 8001520: bf00 nop
+ 8001522: 46bd mov sp, r7
+ 8001524: f85d 7b04 ldr.w r7, [sp], #4
+ 8001528: 4770 bx lr
+ 800152a: bf00 nop
+ 800152c: 20000008 .word 0x20000008
+ 8001530: 200009fc .word 0x200009fc
+
+08001534 :
+ * @note This function is declared as __weak to be overwritten in case of other
+ * implementations in user file.
+ * @retval tick value
+ */
+__weak uint32_t HAL_GetTick(void)
+{
+ 8001534: b480 push {r7}
+ 8001536: af00 add r7, sp, #0
+ return uwTick;
+ 8001538: 4b03 ldr r3, [pc, #12] ; (8001548 )
+ 800153a: 681b ldr r3, [r3, #0]
+}
+ 800153c: 4618 mov r0, r3
+ 800153e: 46bd mov sp, r7
+ 8001540: f85d 7b04 ldr.w r7, [sp], #4
+ 8001544: 4770 bx lr
+ 8001546: bf00 nop
+ 8001548: 200009fc .word 0x200009fc
+
+0800154c :
+ * implementations in user file.
+ * @param Delay specifies the delay time length, in milliseconds.
+ * @retval None
+ */
+__weak void HAL_Delay(uint32_t Delay)
+{
+ 800154c: b580 push {r7, lr}
+ 800154e: b084 sub sp, #16
+ 8001550: af00 add r7, sp, #0
+ 8001552: 6078 str r0, [r7, #4]
+ uint32_t tickstart = HAL_GetTick();
+ 8001554: f7ff ffee bl 8001534
+ 8001558: 60b8 str r0, [r7, #8]
+ uint32_t wait = Delay;
+ 800155a: 687b ldr r3, [r7, #4]
+ 800155c: 60fb str r3, [r7, #12]
+
+ /* Add a freq to guarantee minimum wait */
+ if (wait < HAL_MAX_DELAY)
+ 800155e: 68fb ldr r3, [r7, #12]
+ 8001560: f1b3 3fff cmp.w r3, #4294967295
+ 8001564: d005 beq.n 8001572
+ {
+ wait += (uint32_t)(uwTickFreq);
+ 8001566: 4b0a ldr r3, [pc, #40] ; (8001590 )
+ 8001568: 781b ldrb r3, [r3, #0]
+ 800156a: 461a mov r2, r3
+ 800156c: 68fb ldr r3, [r7, #12]
+ 800156e: 4413 add r3, r2
+ 8001570: 60fb str r3, [r7, #12]
+ }
+
+ while((HAL_GetTick() - tickstart) < wait)
+ 8001572: bf00 nop
+ 8001574: f7ff ffde bl 8001534
+ 8001578: 4602 mov r2, r0
+ 800157a: 68bb ldr r3, [r7, #8]
+ 800157c: 1ad3 subs r3, r2, r3
+ 800157e: 68fa ldr r2, [r7, #12]
+ 8001580: 429a cmp r2, r3
+ 8001582: d8f7 bhi.n 8001574
+ {
+ }
+}
+ 8001584: bf00 nop
+ 8001586: bf00 nop
+ 8001588: 3710 adds r7, #16
+ 800158a: 46bd mov sp, r7
+ 800158c: bd80 pop {r7, pc}
+ 800158e: bf00 nop
+ 8001590: 20000008 .word 0x20000008
+
+08001594 <__NVIC_SetPriorityGrouping>:
+ In case of a conflict between priority grouping and available
+ priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.
+ \param [in] PriorityGroup Priority grouping field.
+ */
+__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
+{
+ 8001594: b480 push {r7}
+ 8001596: b085 sub sp, #20
+ 8001598: af00 add r7, sp, #0
+ 800159a: 6078 str r0, [r7, #4]
+ uint32_t reg_value;
+ uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
+ 800159c: 687b ldr r3, [r7, #4]
+ 800159e: f003 0307 and.w r3, r3, #7
+ 80015a2: 60fb str r3, [r7, #12]
+
+ reg_value = SCB->AIRCR; /* read old register configuration */
+ 80015a4: 4b0c ldr r3, [pc, #48] ; (80015d8 <__NVIC_SetPriorityGrouping+0x44>)
+ 80015a6: 68db ldr r3, [r3, #12]
+ 80015a8: 60bb str r3, [r7, #8]
+ reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
+ 80015aa: 68ba ldr r2, [r7, #8]
+ 80015ac: f64f 03ff movw r3, #63743 ; 0xf8ff
+ 80015b0: 4013 ands r3, r2
+ 80015b2: 60bb str r3, [r7, #8]
+ reg_value = (reg_value |
+ ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
+ (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */
+ 80015b4: 68fb ldr r3, [r7, #12]
+ 80015b6: 021a lsls r2, r3, #8
+ ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
+ 80015b8: 68bb ldr r3, [r7, #8]
+ 80015ba: 4313 orrs r3, r2
+ reg_value = (reg_value |
+ 80015bc: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000
+ 80015c0: f443 3300 orr.w r3, r3, #131072 ; 0x20000
+ 80015c4: 60bb str r3, [r7, #8]
+ SCB->AIRCR = reg_value;
+ 80015c6: 4a04 ldr r2, [pc, #16] ; (80015d8 <__NVIC_SetPriorityGrouping+0x44>)
+ 80015c8: 68bb ldr r3, [r7, #8]
+ 80015ca: 60d3 str r3, [r2, #12]
+}
+ 80015cc: bf00 nop
+ 80015ce: 3714 adds r7, #20
+ 80015d0: 46bd mov sp, r7
+ 80015d2: f85d 7b04 ldr.w r7, [sp], #4
+ 80015d6: 4770 bx lr
+ 80015d8: e000ed00 .word 0xe000ed00
+
+080015dc <__NVIC_GetPriorityGrouping>:
+ \brief Get Priority Grouping
+ \details Reads the priority grouping field from the NVIC Interrupt Controller.
+ \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
+ */
+__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void)
+{
+ 80015dc: b480 push {r7}
+ 80015de: af00 add r7, sp, #0
+ return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
+ 80015e0: 4b04 ldr r3, [pc, #16] ; (80015f4 <__NVIC_GetPriorityGrouping+0x18>)
+ 80015e2: 68db ldr r3, [r3, #12]
+ 80015e4: 0a1b lsrs r3, r3, #8
+ 80015e6: f003 0307 and.w r3, r3, #7
+}
+ 80015ea: 4618 mov r0, r3
+ 80015ec: 46bd mov sp, r7
+ 80015ee: f85d 7b04 ldr.w r7, [sp], #4
+ 80015f2: 4770 bx lr
+ 80015f4: e000ed00 .word 0xe000ed00
+
+080015f8 <__NVIC_SetPriority>:
+ \param [in] IRQn Interrupt number.
+ \param [in] priority Priority to set.
+ \note The priority cannot be set for every processor exception.
+ */
+__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
+{
+ 80015f8: b480 push {r7}
+ 80015fa: b083 sub sp, #12
+ 80015fc: af00 add r7, sp, #0
+ 80015fe: 4603 mov r3, r0
+ 8001600: 6039 str r1, [r7, #0]
+ 8001602: 71fb strb r3, [r7, #7]
+ if ((int32_t)(IRQn) >= 0)
+ 8001604: f997 3007 ldrsb.w r3, [r7, #7]
+ 8001608: 2b00 cmp r3, #0
+ 800160a: db0a blt.n 8001622 <__NVIC_SetPriority+0x2a>
+ {
+ NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
+ 800160c: 683b ldr r3, [r7, #0]
+ 800160e: b2da uxtb r2, r3
+ 8001610: 490c ldr r1, [pc, #48] ; (8001644 <__NVIC_SetPriority+0x4c>)
+ 8001612: f997 3007 ldrsb.w r3, [r7, #7]
+ 8001616: 0112 lsls r2, r2, #4
+ 8001618: b2d2 uxtb r2, r2
+ 800161a: 440b add r3, r1
+ 800161c: f883 2300 strb.w r2, [r3, #768] ; 0x300
+ }
+ else
+ {
+ SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
+ }
+}
+ 8001620: e00a b.n 8001638 <__NVIC_SetPriority+0x40>
+ SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
+ 8001622: 683b ldr r3, [r7, #0]
+ 8001624: b2da uxtb r2, r3
+ 8001626: 4908 ldr r1, [pc, #32] ; (8001648 <__NVIC_SetPriority+0x50>)
+ 8001628: 79fb ldrb r3, [r7, #7]
+ 800162a: f003 030f and.w r3, r3, #15
+ 800162e: 3b04 subs r3, #4
+ 8001630: 0112 lsls r2, r2, #4
+ 8001632: b2d2 uxtb r2, r2
+ 8001634: 440b add r3, r1
+ 8001636: 761a strb r2, [r3, #24]
+}
+ 8001638: bf00 nop
+ 800163a: 370c adds r7, #12
+ 800163c: 46bd mov sp, r7
+ 800163e: f85d 7b04 ldr.w r7, [sp], #4
+ 8001642: 4770 bx lr
+ 8001644: e000e100 .word 0xe000e100
+ 8001648: e000ed00 .word 0xe000ed00
+
+0800164c :
+ \param [in] PreemptPriority Preemptive priority value (starting from 0).
+ \param [in] SubPriority Subpriority value (starting from 0).
+ \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority().
+ */
+__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
+{
+ 800164c: b480 push {r7}
+ 800164e: b089 sub sp, #36 ; 0x24
+ 8001650: af00 add r7, sp, #0
+ 8001652: 60f8 str r0, [r7, #12]
+ 8001654: 60b9 str r1, [r7, #8]
+ 8001656: 607a str r2, [r7, #4]
+ uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
+ 8001658: 68fb ldr r3, [r7, #12]
+ 800165a: f003 0307 and.w r3, r3, #7
+ 800165e: 61fb str r3, [r7, #28]
+ uint32_t PreemptPriorityBits;
+ uint32_t SubPriorityBits;
+
+ PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
+ 8001660: 69fb ldr r3, [r7, #28]
+ 8001662: f1c3 0307 rsb r3, r3, #7
+ 8001666: 2b04 cmp r3, #4
+ 8001668: bf28 it cs
+ 800166a: 2304 movcs r3, #4
+ 800166c: 61bb str r3, [r7, #24]
+ SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
+ 800166e: 69fb ldr r3, [r7, #28]
+ 8001670: 3304 adds r3, #4
+ 8001672: 2b06 cmp r3, #6
+ 8001674: d902 bls.n 800167c
+ 8001676: 69fb ldr r3, [r7, #28]
+ 8001678: 3b03 subs r3, #3
+ 800167a: e000 b.n 800167e
+ 800167c: 2300 movs r3, #0
+ 800167e: 617b str r3, [r7, #20]
+
+ return (
+ ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
+ 8001680: f04f 32ff mov.w r2, #4294967295
+ 8001684: 69bb ldr r3, [r7, #24]
+ 8001686: fa02 f303 lsl.w r3, r2, r3
+ 800168a: 43da mvns r2, r3
+ 800168c: 68bb ldr r3, [r7, #8]
+ 800168e: 401a ands r2, r3
+ 8001690: 697b ldr r3, [r7, #20]
+ 8001692: 409a lsls r2, r3
+ ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
+ 8001694: f04f 31ff mov.w r1, #4294967295
+ 8001698: 697b ldr r3, [r7, #20]
+ 800169a: fa01 f303 lsl.w r3, r1, r3
+ 800169e: 43d9 mvns r1, r3
+ 80016a0: 687b ldr r3, [r7, #4]
+ 80016a2: 400b ands r3, r1
+ ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
+ 80016a4: 4313 orrs r3, r2
+ );
+}
+ 80016a6: 4618 mov r0, r3
+ 80016a8: 3724 adds r7, #36 ; 0x24
+ 80016aa: 46bd mov sp, r7
+ 80016ac: f85d 7b04 ldr.w r7, [sp], #4
+ 80016b0: 4770 bx lr
+ ...
+
+080016b4 :
+ \note When the variable __Vendor_SysTickConfig is set to 1, then the
+ function SysTick_Config is not included. In this case, the file device.h
+ must contain a vendor-specific implementation of this function.
+ */
+__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
+{
+ 80016b4: b580 push {r7, lr}
+ 80016b6: b082 sub sp, #8
+ 80016b8: af00 add r7, sp, #0
+ 80016ba: 6078 str r0, [r7, #4]
+ if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
+ 80016bc: 687b ldr r3, [r7, #4]
+ 80016be: 3b01 subs r3, #1
+ 80016c0: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000
+ 80016c4: d301 bcc.n 80016ca
+ {
+ return (1UL); /* Reload value impossible */
+ 80016c6: 2301 movs r3, #1
+ 80016c8: e00f b.n 80016ea
+ }
+
+ SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
+ 80016ca: 4a0a ldr r2, [pc, #40] ; (80016f4 )
+ 80016cc: 687b ldr r3, [r7, #4]
+ 80016ce: 3b01 subs r3, #1
+ 80016d0: 6053 str r3, [r2, #4]
+ NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
+ 80016d2: 210f movs r1, #15
+ 80016d4: f04f 30ff mov.w r0, #4294967295
+ 80016d8: f7ff ff8e bl 80015f8 <__NVIC_SetPriority>
+ SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
+ 80016dc: 4b05 ldr r3, [pc, #20] ; (80016f4 )
+ 80016de: 2200 movs r2, #0
+ 80016e0: 609a str r2, [r3, #8]
+ SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
+ 80016e2: 4b04 ldr r3, [pc, #16] ; (80016f4 )
+ 80016e4: 2207 movs r2, #7
+ 80016e6: 601a str r2, [r3, #0]
+ SysTick_CTRL_TICKINT_Msk |
+ SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
+ return (0UL); /* Function successful */
+ 80016e8: 2300 movs r3, #0
+}
+ 80016ea: 4618 mov r0, r3
+ 80016ec: 3708 adds r7, #8
+ 80016ee: 46bd mov sp, r7
+ 80016f0: bd80 pop {r7, pc}
+ 80016f2: bf00 nop
+ 80016f4: e000e010 .word 0xe000e010
+
+080016f8 :
+ * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible.
+ * The pending IRQ priority will be managed only by the subpriority.
+ * @retval None
+ */
+void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
+{
+ 80016f8: b580 push {r7, lr}
+ 80016fa: b082 sub sp, #8
+ 80016fc: af00 add r7, sp, #0
+ 80016fe: 6078 str r0, [r7, #4]
+ /* Check the parameters */
+ assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup));
+
+ /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */
+ NVIC_SetPriorityGrouping(PriorityGroup);
+ 8001700: 6878 ldr r0, [r7, #4]
+ 8001702: f7ff ff47 bl 8001594 <__NVIC_SetPriorityGrouping>
+}
+ 8001706: bf00 nop
+ 8001708: 3708 adds r7, #8
+ 800170a: 46bd mov sp, r7
+ 800170c: bd80 pop {r7, pc}
+
+0800170e :
+ * This parameter can be a value between 0 and 15
+ * A lower priority value indicates a higher priority.
+ * @retval None
+ */
+void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
+{
+ 800170e: b580 push {r7, lr}
+ 8001710: b086 sub sp, #24
+ 8001712: af00 add r7, sp, #0
+ 8001714: 4603 mov r3, r0
+ 8001716: 60b9 str r1, [r7, #8]
+ 8001718: 607a str r2, [r7, #4]
+ 800171a: 73fb strb r3, [r7, #15]
+ uint32_t prioritygroup = 0x00U;
+ 800171c: 2300 movs r3, #0
+ 800171e: 617b str r3, [r7, #20]
+
+ /* Check the parameters */
+ assert_param(IS_NVIC_SUB_PRIORITY(SubPriority));
+ assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority));
+
+ prioritygroup = NVIC_GetPriorityGrouping();
+ 8001720: f7ff ff5c bl 80015dc <__NVIC_GetPriorityGrouping>
+ 8001724: 6178 str r0, [r7, #20]
+
+ NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
+ 8001726: 687a ldr r2, [r7, #4]
+ 8001728: 68b9 ldr r1, [r7, #8]
+ 800172a: 6978 ldr r0, [r7, #20]
+ 800172c: f7ff ff8e bl 800164c
+ 8001730: 4602 mov r2, r0
+ 8001732: f997 300f ldrsb.w r3, [r7, #15]
+ 8001736: 4611 mov r1, r2
+ 8001738: 4618 mov r0, r3
+ 800173a: f7ff ff5d bl 80015f8 <__NVIC_SetPriority>
+}
+ 800173e: bf00 nop
+ 8001740: 3718 adds r7, #24
+ 8001742: 46bd mov sp, r7
+ 8001744: bd80 pop {r7, pc}
+
+08001746 :
+ * @param TicksNumb Specifies the ticks Number of ticks between two interrupts.
+ * @retval status: - 0 Function succeeded.
+ * - 1 Function failed.
+ */
+uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
+{
+ 8001746: b580 push {r7, lr}
+ 8001748: b082 sub sp, #8
+ 800174a: af00 add r7, sp, #0
+ 800174c: 6078 str r0, [r7, #4]
+ return SysTick_Config(TicksNumb);
+ 800174e: 6878 ldr r0, [r7, #4]
+ 8001750: f7ff ffb0 bl 80016b4
+ 8001754: 4603 mov r3, r0
+}
+ 8001756: 4618 mov r0, r3
+ 8001758: 3708 adds r7, #8
+ 800175a: 46bd mov sp, r7
+ 800175c: bd80 pop {r7, pc}
+ ...
+
+08001760 :
+ * @param heth: pointer to a ETH_HandleTypeDef structure that contains
+ * the configuration information for ETHERNET module
+ * @retval HAL status
+ */
+HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth)
+{
+ 8001760: b580 push {r7, lr}
+ 8001762: b084 sub sp, #16
+ 8001764: af00 add r7, sp, #0
+ 8001766: 6078 str r0, [r7, #4]
+ uint32_t tickstart;
+
+ if (heth == NULL)
+ 8001768: 687b ldr r3, [r7, #4]
+ 800176a: 2b00 cmp r3, #0
+ 800176c: d101 bne.n 8001772
+ {
+ return HAL_ERROR;
+ 800176e: 2301 movs r3, #1
+ 8001770: e06c b.n 800184c
+ }
+ if (heth->gState == HAL_ETH_STATE_RESET)
+ 8001772: 687b ldr r3, [r7, #4]
+ 8001774: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
+ 8001778: 2b00 cmp r3, #0
+ 800177a: d106 bne.n 800178a
+ {
+ heth->gState = HAL_ETH_STATE_BUSY;
+ 800177c: 687b ldr r3, [r7, #4]
+ 800177e: 2223 movs r2, #35 ; 0x23
+ 8001780: f8c3 2084 str.w r2, [r3, #132] ; 0x84
+
+ /* Init the low level hardware */
+ heth->MspInitCallback(heth);
+#else
+ /* Init the low level hardware : GPIO, CLOCK, NVIC. */
+ HAL_ETH_MspInit(heth);
+ 8001784: 6878 ldr r0, [r7, #4]
+ 8001786: f002 f901 bl 800398c
+
+#endif /* (USE_HAL_ETH_REGISTER_CALLBACKS) */
+ }
+
+ __HAL_RCC_SYSCFG_CLK_ENABLE();
+ 800178a: 2300 movs r3, #0
+ 800178c: 60bb str r3, [r7, #8]
+ 800178e: 4b31 ldr r3, [pc, #196] ; (8001854 )
+ 8001790: 6c5b ldr r3, [r3, #68] ; 0x44
+ 8001792: 4a30 ldr r2, [pc, #192] ; (8001854 )
+ 8001794: f443 4380 orr.w r3, r3, #16384 ; 0x4000
+ 8001798: 6453 str r3, [r2, #68] ; 0x44
+ 800179a: 4b2e ldr r3, [pc, #184] ; (8001854 )
+ 800179c: 6c5b ldr r3, [r3, #68] ; 0x44
+ 800179e: f403 4380 and.w r3, r3, #16384 ; 0x4000
+ 80017a2: 60bb str r3, [r7, #8]
+ 80017a4: 68bb ldr r3, [r7, #8]
+
+ /* Select MII or RMII Mode*/
+ SYSCFG->PMC &= ~(SYSCFG_PMC_MII_RMII_SEL);
+ 80017a6: 4b2c ldr r3, [pc, #176] ; (8001858 )
+ 80017a8: 685b ldr r3, [r3, #4]
+ 80017aa: 4a2b ldr r2, [pc, #172] ; (8001858 )
+ 80017ac: f423 0300 bic.w r3, r3, #8388608 ; 0x800000
+ 80017b0: 6053 str r3, [r2, #4]
+ SYSCFG->PMC |= (uint32_t)heth->Init.MediaInterface;
+ 80017b2: 4b29 ldr r3, [pc, #164] ; (8001858 )
+ 80017b4: 685a ldr r2, [r3, #4]
+ 80017b6: 687b ldr r3, [r7, #4]
+ 80017b8: 689b ldr r3, [r3, #8]
+ 80017ba: 4927 ldr r1, [pc, #156] ; (8001858 )
+ 80017bc: 4313 orrs r3, r2
+ 80017be: 604b str r3, [r1, #4]
+ /* Dummy read to sync SYSCFG with ETH */
+ (void)SYSCFG->PMC;
+ 80017c0: 4b25 ldr r3, [pc, #148] ; (8001858 )
+ 80017c2: 685b ldr r3, [r3, #4]
+
+ /* Ethernet Software reset */
+ /* Set the SWR bit: resets all MAC subsystem internal registers and logic */
+ /* After reset all the registers holds their respective reset values */
+ SET_BIT(heth->Instance->DMABMR, ETH_DMABMR_SR);
+ 80017c4: 687b ldr r3, [r7, #4]
+ 80017c6: 681b ldr r3, [r3, #0]
+ 80017c8: f503 5380 add.w r3, r3, #4096 ; 0x1000
+ 80017cc: 681b ldr r3, [r3, #0]
+ 80017ce: 687a ldr r2, [r7, #4]
+ 80017d0: 6812 ldr r2, [r2, #0]
+ 80017d2: f043 0301 orr.w r3, r3, #1
+ 80017d6: f502 5280 add.w r2, r2, #4096 ; 0x1000
+ 80017da: 6013 str r3, [r2, #0]
+
+ /* Get tick */
+ tickstart = HAL_GetTick();
+ 80017dc: f7ff feaa bl 8001534
+ 80017e0: 60f8 str r0, [r7, #12]
+
+ /* Wait for software reset */
+ while (READ_BIT(heth->Instance->DMABMR, ETH_DMABMR_SR) > 0U)
+ 80017e2: e011 b.n 8001808
+ {
+ if (((HAL_GetTick() - tickstart) > ETH_SWRESET_TIMEOUT))
+ 80017e4: f7ff fea6 bl 8001534
+ 80017e8: 4602 mov r2, r0
+ 80017ea: 68fb ldr r3, [r7, #12]
+ 80017ec: 1ad3 subs r3, r2, r3
+ 80017ee: f5b3 7ffa cmp.w r3, #500 ; 0x1f4
+ 80017f2: d909 bls.n 8001808
+ {
+ /* Set Error Code */
+ heth->ErrorCode = HAL_ETH_ERROR_TIMEOUT;
+ 80017f4: 687b ldr r3, [r7, #4]
+ 80017f6: 2204 movs r2, #4
+ 80017f8: f8c3 2088 str.w r2, [r3, #136] ; 0x88
+ /* Set State as Error */
+ heth->gState = HAL_ETH_STATE_ERROR;
+ 80017fc: 687b ldr r3, [r7, #4]
+ 80017fe: 22e0 movs r2, #224 ; 0xe0
+ 8001800: f8c3 2084 str.w r2, [r3, #132] ; 0x84
+ /* Return Error */
+ return HAL_ERROR;
+ 8001804: 2301 movs r3, #1
+ 8001806: e021 b.n 800184c
+ while (READ_BIT(heth->Instance->DMABMR, ETH_DMABMR_SR) > 0U)
+ 8001808: 687b ldr r3, [r7, #4]
+ 800180a: 681b ldr r3, [r3, #0]
+ 800180c: f503 5380 add.w r3, r3, #4096 ; 0x1000
+ 8001810: 681b ldr r3, [r3, #0]
+ 8001812: f003 0301 and.w r3, r3, #1
+ 8001816: 2b00 cmp r3, #0
+ 8001818: d1e4 bne.n 80017e4
+ }
+ }
+
+
+ /*------------------ MAC, MTL and DMA default Configuration ----------------*/
+ ETH_MACDMAConfig(heth);
+ 800181a: 6878 ldr r0, [r7, #4]
+ 800181c: f000 fdf0 bl 8002400
+
+
+ /*------------------ DMA Tx Descriptors Configuration ----------------------*/
+ ETH_DMATxDescListInit(heth);
+ 8001820: 6878 ldr r0, [r7, #4]
+ 8001822: f000 fe97 bl 8002554
+
+ /*------------------ DMA Rx Descriptors Configuration ----------------------*/
+ ETH_DMARxDescListInit(heth);
+ 8001826: 6878 ldr r0, [r7, #4]
+ 8001828: f000 feed bl 8002606
+
+ /*--------------------- ETHERNET MAC Address Configuration ------------------*/
+ ETH_MACAddressConfig(heth, ETH_MAC_ADDRESS0, heth->Init.MACAddr);
+ 800182c: 687b ldr r3, [r7, #4]
+ 800182e: 685b ldr r3, [r3, #4]
+ 8001830: 461a mov r2, r3
+ 8001832: 2100 movs r1, #0
+ 8001834: 6878 ldr r0, [r7, #4]
+ 8001836: f000 fe55 bl 80024e4
+
+ heth->ErrorCode = HAL_ETH_ERROR_NONE;
+ 800183a: 687b ldr r3, [r7, #4]
+ 800183c: 2200 movs r2, #0
+ 800183e: f8c3 2088 str.w r2, [r3, #136] ; 0x88
+ heth->gState = HAL_ETH_STATE_READY;
+ 8001842: 687b ldr r3, [r7, #4]
+ 8001844: 2210 movs r2, #16
+ 8001846: f8c3 2084 str.w r2, [r3, #132] ; 0x84
+
+ return HAL_OK;
+ 800184a: 2300 movs r3, #0
+}
+ 800184c: 4618 mov r0, r3
+ 800184e: 3710 adds r7, #16
+ 8001850: 46bd mov sp, r7
+ 8001852: bd80 pop {r7, pc}
+ 8001854: 40023800 .word 0x40023800
+ 8001858: 40013800 .word 0x40013800
+
+0800185c :
+ * @param heth: pointer to a ETH_HandleTypeDef structure that contains
+ * the configuration information for ETHERNET module
+ * @retval HAL status
+ */
+HAL_StatusTypeDef HAL_ETH_Start(ETH_HandleTypeDef *heth)
+{
+ 800185c: b580 push {r7, lr}
+ 800185e: b084 sub sp, #16
+ 8001860: af00 add r7, sp, #0
+ 8001862: 6078 str r0, [r7, #4]
+ uint32_t tmpreg1;
+
+ if (heth->gState == HAL_ETH_STATE_READY)
+ 8001864: 687b ldr r3, [r7, #4]
+ 8001866: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
+ 800186a: 2b10 cmp r3, #16
+ 800186c: d150 bne.n 8001910
+ {
+ heth->gState = HAL_ETH_STATE_BUSY;
+ 800186e: 687b ldr r3, [r7, #4]
+ 8001870: 2223 movs r2, #35 ; 0x23
+ 8001872: f8c3 2084 str.w r2, [r3, #132] ; 0x84
+
+ /* Set nombre of descriptors to build */
+ heth->RxDescList.RxBuildDescCnt = ETH_RX_DESC_CNT;
+ 8001876: 687b ldr r3, [r7, #4]
+ 8001878: 2204 movs r2, #4
+ 800187a: 66da str r2, [r3, #108] ; 0x6c
+
+ /* Build all descriptors */
+ ETH_UpdateDescriptor(heth);
+ 800187c: 6878 ldr r0, [r7, #4]
+ 800187e: f000 f9fd bl 8001c7c
+
+ /* Enable the MAC transmission */
+ SET_BIT(heth->Instance->MACCR, ETH_MACCR_TE);
+ 8001882: 687b ldr r3, [r7, #4]
+ 8001884: 681b ldr r3, [r3, #0]
+ 8001886: 681a ldr r2, [r3, #0]
+ 8001888: 687b ldr r3, [r7, #4]
+ 800188a: 681b ldr r3, [r3, #0]
+ 800188c: f042 0208 orr.w r2, r2, #8
+ 8001890: 601a str r2, [r3, #0]
+
+ /* Wait until the write operation will be taken into account :
+ at least four TX_CLK/RX_CLK clock cycles */
+ tmpreg1 = (heth->Instance)->MACCR;
+ 8001892: 687b ldr r3, [r7, #4]
+ 8001894: 681b ldr r3, [r3, #0]
+ 8001896: 681b ldr r3, [r3, #0]
+ 8001898: 60fb str r3, [r7, #12]
+ HAL_Delay(ETH_REG_WRITE_DELAY);
+ 800189a: 2001 movs r0, #1
+ 800189c: f7ff fe56 bl 800154c
+ (heth->Instance)->MACCR = tmpreg1;
+ 80018a0: 687b ldr r3, [r7, #4]
+ 80018a2: 681b ldr r3, [r3, #0]
+ 80018a4: 68fa ldr r2, [r7, #12]
+ 80018a6: 601a str r2, [r3, #0]
+
+ /* Enable the MAC reception */
+ SET_BIT(heth->Instance->MACCR, ETH_MACCR_RE);
+ 80018a8: 687b ldr r3, [r7, #4]
+ 80018aa: 681b ldr r3, [r3, #0]
+ 80018ac: 681a ldr r2, [r3, #0]
+ 80018ae: 687b ldr r3, [r7, #4]
+ 80018b0: 681b ldr r3, [r3, #0]
+ 80018b2: f042 0204 orr.w r2, r2, #4
+ 80018b6: 601a str r2, [r3, #0]
+
+ /* Wait until the write operation will be taken into account :
+ at least four TX_CLK/RX_CLK clock cycles */
+ tmpreg1 = (heth->Instance)->MACCR;
+ 80018b8: 687b ldr r3, [r7, #4]
+ 80018ba: 681b ldr r3, [r3, #0]
+ 80018bc: 681b ldr r3, [r3, #0]
+ 80018be: 60fb str r3, [r7, #12]
+ HAL_Delay(ETH_REG_WRITE_DELAY);
+ 80018c0: 2001 movs r0, #1
+ 80018c2: f7ff fe43 bl 800154c
+ (heth->Instance)->MACCR = tmpreg1;
+ 80018c6: 687b ldr r3, [r7, #4]
+ 80018c8: 681b ldr r3, [r3, #0]
+ 80018ca: 68fa ldr r2, [r7, #12]
+ 80018cc: 601a str r2, [r3, #0]
+
+ /* Flush Transmit FIFO */
+ ETH_FlushTransmitFIFO(heth);
+ 80018ce: 6878 ldr r0, [r7, #4]
+ 80018d0: f000 fc36 bl 8002140
+
+ /* Enable the DMA transmission */
+ SET_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_ST);
+ 80018d4: 687b ldr r3, [r7, #4]
+ 80018d6: 681b ldr r3, [r3, #0]
+ 80018d8: f503 5380 add.w r3, r3, #4096 ; 0x1000
+ 80018dc: 699b ldr r3, [r3, #24]
+ 80018de: 687a ldr r2, [r7, #4]
+ 80018e0: 6812 ldr r2, [r2, #0]
+ 80018e2: f443 5300 orr.w r3, r3, #8192 ; 0x2000
+ 80018e6: f502 5280 add.w r2, r2, #4096 ; 0x1000
+ 80018ea: 6193 str r3, [r2, #24]
+
+ /* Enable the DMA reception */
+ SET_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_SR);
+ 80018ec: 687b ldr r3, [r7, #4]
+ 80018ee: 681b ldr r3, [r3, #0]
+ 80018f0: f503 5380 add.w r3, r3, #4096 ; 0x1000
+ 80018f4: 699b ldr r3, [r3, #24]
+ 80018f6: 687a ldr r2, [r7, #4]
+ 80018f8: 6812 ldr r2, [r2, #0]
+ 80018fa: f043 0302 orr.w r3, r3, #2
+ 80018fe: f502 5280 add.w r2, r2, #4096 ; 0x1000
+ 8001902: 6193 str r3, [r2, #24]
+
+ heth->gState = HAL_ETH_STATE_STARTED;
+ 8001904: 687b ldr r3, [r7, #4]
+ 8001906: 2223 movs r2, #35 ; 0x23
+ 8001908: f8c3 2084 str.w r2, [r3, #132] ; 0x84
+
+ return HAL_OK;
+ 800190c: 2300 movs r3, #0
+ 800190e: e000 b.n 8001912
+ }
+ else
+ {
+ return HAL_ERROR;
+ 8001910: 2301 movs r3, #1
+ }
+}
+ 8001912: 4618 mov r0, r3
+ 8001914: 3710 adds r7, #16
+ 8001916: 46bd mov sp, r7
+ 8001918: bd80 pop {r7, pc}
+
+0800191a :
+ * @param heth: pointer to a ETH_HandleTypeDef structure that contains
+ * the configuration information for ETHERNET module
+ * @retval HAL status
+ */
+HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth)
+{
+ 800191a: b580 push {r7, lr}
+ 800191c: b084 sub sp, #16
+ 800191e: af00 add r7, sp, #0
+ 8001920: 6078 str r0, [r7, #4]
+ uint32_t tmpreg1;
+
+ if (heth->gState == HAL_ETH_STATE_STARTED)
+ 8001922: 687b ldr r3, [r7, #4]
+ 8001924: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
+ 8001928: 2b23 cmp r3, #35 ; 0x23
+ 800192a: d14a bne.n 80019c2
+ {
+ /* Set the ETH peripheral state to BUSY */
+ heth->gState = HAL_ETH_STATE_BUSY;
+ 800192c: 687b ldr r3, [r7, #4]
+ 800192e: 2223 movs r2, #35 ; 0x23
+ 8001930: f8c3 2084 str.w r2, [r3, #132] ; 0x84
+ /* Disable the DMA transmission */
+ CLEAR_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_ST);
+ 8001934: 687b ldr r3, [r7, #4]
+ 8001936: 681b ldr r3, [r3, #0]
+ 8001938: f503 5380 add.w r3, r3, #4096 ; 0x1000
+ 800193c: 699b ldr r3, [r3, #24]
+ 800193e: 687a ldr r2, [r7, #4]
+ 8001940: 6812 ldr r2, [r2, #0]
+ 8001942: f423 5300 bic.w r3, r3, #8192 ; 0x2000
+ 8001946: f502 5280 add.w r2, r2, #4096 ; 0x1000
+ 800194a: 6193 str r3, [r2, #24]
+
+ /* Disable the DMA reception */
+ CLEAR_BIT(heth->Instance->DMAOMR, ETH_DMAOMR_SR);
+ 800194c: 687b ldr r3, [r7, #4]
+ 800194e: 681b ldr r3, [r3, #0]
+ 8001950: f503 5380 add.w r3, r3, #4096 ; 0x1000
+ 8001954: 699b ldr r3, [r3, #24]
+ 8001956: 687a ldr r2, [r7, #4]
+ 8001958: 6812 ldr r2, [r2, #0]
+ 800195a: f023 0302 bic.w r3, r3, #2
+ 800195e: f502 5280 add.w r2, r2, #4096 ; 0x1000
+ 8001962: 6193 str r3, [r2, #24]
+
+ /* Disable the MAC reception */
+ CLEAR_BIT(heth->Instance->MACCR, ETH_MACCR_RE);
+ 8001964: 687b ldr r3, [r7, #4]
+ 8001966: 681b ldr r3, [r3, #0]
+ 8001968: 681a ldr r2, [r3, #0]
+ 800196a: 687b ldr r3, [r7, #4]
+ 800196c: 681b ldr r3, [r3, #0]
+ 800196e: f022 0204 bic.w r2, r2, #4
+ 8001972: 601a str r2, [r3, #0]
+
+ /* Wait until the write operation will be taken into account :
+ at least four TX_CLK/RX_CLK clock cycles */
+ tmpreg1 = (heth->Instance)->MACCR;
+ 8001974: 687b ldr r3, [r7, #4]
+ 8001976: 681b ldr r3, [r3, #0]
+ 8001978: 681b ldr r3, [r3, #0]
+ 800197a: 60fb str r3, [r7, #12]
+ HAL_Delay(ETH_REG_WRITE_DELAY);
+ 800197c: 2001 movs r0, #1
+ 800197e: f7ff fde5 bl 800154c
+ (heth->Instance)->MACCR = tmpreg1;
+ 8001982: 687b ldr r3, [r7, #4]
+ 8001984: 681b ldr r3, [r3, #0]
+ 8001986: 68fa ldr r2, [r7, #12]
+ 8001988: 601a str r2, [r3, #0]
+
+ /* Flush Transmit FIFO */
+ ETH_FlushTransmitFIFO(heth);
+ 800198a: 6878 ldr r0, [r7, #4]
+ 800198c: f000 fbd8 bl 8002140
+
+ /* Disable the MAC transmission */
+ CLEAR_BIT(heth->Instance->MACCR, ETH_MACCR_TE);
+ 8001990: 687b ldr r3, [r7, #4]
+ 8001992: 681b ldr r3, [r3, #0]
+ 8001994: 681a ldr r2, [r3, #0]
+ 8001996: 687b ldr r3, [r7, #4]
+ 8001998: 681b ldr r3, [r3, #0]
+ 800199a: f022 0208 bic.w r2, r2, #8
+ 800199e: 601a str r2, [r3, #0]
+
+ /* Wait until the write operation will be taken into account :
+ at least four TX_CLK/RX_CLK clock cycles */
+ tmpreg1 = (heth->Instance)->MACCR;
+ 80019a0: 687b ldr r3, [r7, #4]
+ 80019a2: 681b ldr r3, [r3, #0]
+ 80019a4: 681b ldr r3, [r3, #0]
+ 80019a6: 60fb str r3, [r7, #12]
+ HAL_Delay(ETH_REG_WRITE_DELAY);
+ 80019a8: 2001 movs r0, #1
+ 80019aa: f7ff fdcf bl 800154c
+ (heth->Instance)->MACCR = tmpreg1;
+ 80019ae: 687b ldr r3, [r7, #4]
+ 80019b0: 681b ldr r3, [r3, #0]
+ 80019b2: 68fa ldr r2, [r7, #12]
+ 80019b4: 601a str r2, [r3, #0]
+
+ heth->gState = HAL_ETH_STATE_READY;
+ 80019b6: 687b ldr r3, [r7, #4]
+ 80019b8: 2210 movs r2, #16
+ 80019ba: f8c3 2084 str.w r2, [r3, #132] ; 0x84
+
+ /* Return function status */
+ return HAL_OK;
+ 80019be: 2300 movs r3, #0
+ 80019c0: e000 b.n 80019c4
+ }
+ else
+ {
+ return HAL_ERROR;
+ 80019c2: 2301 movs r3, #1
+ }
+}
+ 80019c4: 4618 mov r0, r3
+ 80019c6: 3710 adds r7, #16
+ 80019c8: 46bd mov sp, r7
+ 80019ca: bd80 pop {r7, pc}
+
+080019cc :
+ * @param pTxConfig: Hold the configuration of packet to be transmitted
+ * @param Timeout: timeout value
+ * @retval HAL status
+ */
+HAL_StatusTypeDef HAL_ETH_Transmit(ETH_HandleTypeDef *heth, ETH_TxPacketConfig *pTxConfig, uint32_t Timeout)
+{
+ 80019cc: b580 push {r7, lr}
+ 80019ce: b086 sub sp, #24
+ 80019d0: af00 add r7, sp, #0
+ 80019d2: 60f8 str r0, [r7, #12]
+ 80019d4: 60b9 str r1, [r7, #8]
+ 80019d6: 607a str r2, [r7, #4]
+ uint32_t tickstart;
+ ETH_DMADescTypeDef *dmatxdesc;
+
+ if (pTxConfig == NULL)
+ 80019d8: 68bb ldr r3, [r7, #8]
+ 80019da: 2b00 cmp r3, #0
+ 80019dc: d109 bne.n 80019f2
+ {
+ heth->ErrorCode |= HAL_ETH_ERROR_PARAM;
+ 80019de: 68fb ldr r3, [r7, #12]
+ 80019e0: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
+ 80019e4: f043 0201 orr.w r2, r3, #1
+ 80019e8: 68fb ldr r3, [r7, #12]
+ 80019ea: f8c3 2088 str.w r2, [r3, #136] ; 0x88
+ return HAL_ERROR;
+ 80019ee: 2301 movs r3, #1
+ 80019f0: e07c b.n 8001aec
+ }
+
+ if (heth->gState == HAL_ETH_STATE_STARTED)
+ 80019f2: 68fb ldr r3, [r7, #12]
+ 80019f4: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
+ 80019f8: 2b23 cmp r3, #35 ; 0x23
+ 80019fa: d176 bne.n 8001aea
+ {
+ /* Config DMA Tx descriptor by Tx Packet info */
+ if (ETH_Prepare_Tx_Descriptors(heth, pTxConfig, 0) != HAL_ETH_ERROR_NONE)
+ 80019fc: 2200 movs r2, #0
+ 80019fe: 68b9 ldr r1, [r7, #8]
+ 8001a00: 68f8 ldr r0, [r7, #12]
+ 8001a02: f000 fe6d bl 80026e0
+ 8001a06: 4603 mov r3, r0
+ 8001a08: 2b00 cmp r3, #0
+ 8001a0a: d009 beq.n 8001a20
+ {
+ /* Set the ETH error code */
+ heth->ErrorCode |= HAL_ETH_ERROR_BUSY;
+ 8001a0c: 68fb ldr r3, [r7, #12]
+ 8001a0e: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
+ 8001a12: f043 0202 orr.w r2, r3, #2
+ 8001a16: 68fb ldr r3, [r7, #12]
+ 8001a18: f8c3 2088 str.w r2, [r3, #136] ; 0x88
+ return HAL_ERROR;
+ 8001a1c: 2301 movs r3, #1
+ 8001a1e: e065 b.n 8001aec
+ \details Acts as a special kind of Data Memory Barrier.
+ It completes when all explicit memory accesses before this instruction complete.
+ */
+__STATIC_FORCEINLINE void __DSB(void)
+{
+ __ASM volatile ("dsb 0xF":::"memory");
+ 8001a20: f3bf 8f4f dsb sy
+}
+ 8001a24: bf00 nop
+ }
+
+ /* Ensure completion of descriptor preparation before transmission start */
+ __DSB();
+
+ dmatxdesc = (ETH_DMADescTypeDef *)(&heth->TxDescList)->TxDesc[heth->TxDescList.CurTxDesc];
+ 8001a26: 68fb ldr r3, [r7, #12]
+ 8001a28: 6a9a ldr r2, [r3, #40] ; 0x28
+ 8001a2a: 68fb ldr r3, [r7, #12]
+ 8001a2c: 3206 adds r2, #6
+ 8001a2e: f853 3022 ldr.w r3, [r3, r2, lsl #2]
+ 8001a32: 617b str r3, [r7, #20]
+
+ /* Incr current tx desc index */
+ INCR_TX_DESC_INDEX(heth->TxDescList.CurTxDesc, 1U);
+ 8001a34: 68fb ldr r3, [r7, #12]
+ 8001a36: 6a9b ldr r3, [r3, #40] ; 0x28
+ 8001a38: 1c5a adds r2, r3, #1
+ 8001a3a: 68fb ldr r3, [r7, #12]
+ 8001a3c: 629a str r2, [r3, #40] ; 0x28
+ 8001a3e: 68fb ldr r3, [r7, #12]
+ 8001a40: 6a9b ldr r3, [r3, #40] ; 0x28
+ 8001a42: 2b03 cmp r3, #3
+ 8001a44: d904 bls.n 8001a50
+ 8001a46: 68fb ldr r3, [r7, #12]
+ 8001a48: 6a9b ldr r3, [r3, #40] ; 0x28
+ 8001a4a: 1f1a subs r2, r3, #4
+ 8001a4c: 68fb ldr r3, [r7, #12]
+ 8001a4e: 629a str r2, [r3, #40] ; 0x28
+
+ /* Start transmission */
+ /* issue a poll command to Tx DMA by writing address of next immediate free descriptor */
+ WRITE_REG(heth->Instance->DMATPDR, (uint32_t)(heth->TxDescList.TxDesc[heth->TxDescList.CurTxDesc]));
+ 8001a50: 68fb ldr r3, [r7, #12]
+ 8001a52: 6a99 ldr r1, [r3, #40] ; 0x28
+ 8001a54: 68fb ldr r3, [r7, #12]
+ 8001a56: 681a ldr r2, [r3, #0]
+ 8001a58: 68fb ldr r3, [r7, #12]
+ 8001a5a: 3106 adds r1, #6
+ 8001a5c: f853 3021 ldr.w r3, [r3, r1, lsl #2]
+ 8001a60: f502 5280 add.w r2, r2, #4096 ; 0x1000
+ 8001a64: 6053 str r3, [r2, #4]
+
+ tickstart = HAL_GetTick();
+ 8001a66: f7ff fd65 bl 8001534
+ 8001a6a: 6138 str r0, [r7, #16]
+
+ /* Wait for data to be transmitted or timeout occurred */
+ while ((dmatxdesc->DESC0 & ETH_DMATXDESC_OWN) != (uint32_t)RESET)
+ 8001a6c: e037 b.n 8001ade
+ {
+ if ((heth->Instance->DMASR & ETH_DMASR_FBES) != (uint32_t)RESET)
+ 8001a6e: 68fb ldr r3, [r7, #12]
+ 8001a70: 681b ldr r3, [r3, #0]
+ 8001a72: f503 5380 add.w r3, r3, #4096 ; 0x1000
+ 8001a76: 695b ldr r3, [r3, #20]
+ 8001a78: f403 5300 and.w r3, r3, #8192 ; 0x2000
+ 8001a7c: 2b00 cmp r3, #0
+ 8001a7e: d011 beq.n 8001aa4