diff --git a/.metadata/.ide.log b/.metadata/.ide.log
index 3438e72..2a4a4f5 100644
--- a/.metadata/.ide.log
+++ b/.metadata/.ide.log
@@ -1,2256 +1 @@
-2025-09-20 00:17:48,329 [INFO] Activator:176 -
-
-
-2025-09-20 00:17:48,336 [INFO] Activator:177 - !SESSION log4j initialized
-2025-09-20 00:18:00,868 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT]
-2025-09-20 00:18:04,686 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
-2025-09-20 00:18:04,728 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
-2025-09-20 00:18:04,729 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
-2025-09-20 00:18:04,729 [WARN] ApiDb:259 - Overriding images path with different value: => /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
-2025-09-20 00:18:04,742 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 00:18:04,745 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 00:18:04,749 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
-2025-09-20 00:18:05,074 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
-2025-09-20 00:18:05,242 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
-2025-09-20 00:18:05,242 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
-2025-09-20 00:18:05,243 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
-2025-09-20 00:18:05,243 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 00:18:05,243 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 00:18:05,244 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 00:18:05,245 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 00:18:05,245 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 00:18:05,245 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 00:18:05,245 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
-2025-09-20 00:18:05,395 [INFO] MainPanel:274 - HeapMemory: 268435456
-2025-09-20 00:18:06,229 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
-2025-09-20 00:18:06,229 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
-2025-09-20 00:18:06,230 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
-2025-09-20 00:18:06,230 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 00:18:06,231 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 00:18:06,231 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 00:18:06,231 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 00:18:06,231 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 00:18:06,231 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 00:18:06,231 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
-2025-09-20 00:18:06,259 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
-2025-09-20 00:18:06,262 [INFO] PluginManage:196 - Search for loadable plugins [exclusion list=, ]
-2025-09-20 00:18:06,265 [INFO] PluginManage:310 - Check plugin analytics
-2025-09-20 00:18:06,791 [INFO] AnalyticsPlugin:253 - Accepted Software Licenses: STM32CubeMX.6.15.0
-2025-09-20 00:18:06,791 [INFO] AnalyticsPlugin:255 - Accepted CMSIS Pack Licenses:
-2025-09-20 00:18:06,791 [INFO] AnalyticsPlugin:257 - Accepted Firmware Licenses: FW.F4.1.28.0
-2025-09-20 00:18:06,802 [INFO] PluginManage:359 - Loaded plugin analytics (category:tool,tabindex:-1)
-2025-09-20 00:18:06,803 [INFO] PluginManage:310 - Check plugin cadmodel
-2025-09-20 00:18:06,812 [INFO] CADModel:105 - Init CAD model plugin
-2025-09-20 00:18:06,812 [INFO] PluginManage:359 - Loaded plugin cadmodel (category:power,tabindex:5)
-2025-09-20 00:18:06,813 [INFO] PluginManage:310 - Check plugin clock
-2025-09-20 00:18:06,835 [INFO] PluginManage:359 - Loaded plugin clock (category:base,tabindex:2)
-2025-09-20 00:18:06,835 [INFO] PluginManage:310 - Check plugin ddr
-2025-09-20 00:18:06,838 [INFO] PluginManage:359 - Loaded plugin ddr (category:tool,tabindex:6)
-2025-09-20 00:18:06,839 [INFO] PluginManage:310 - Check plugin filemanager
-2025-09-20 00:18:07,143 [INFO] PluginManage:359 - Loaded plugin filemanager (category:base,tabindex:10)
-2025-09-20 00:18:07,143 [INFO] PluginManage:310 - Check plugin ipmanager
-2025-09-20 00:18:07,157 [INFO] PluginManage:359 - Loaded plugin ipmanager (category:base,tabindex:5)
-2025-09-20 00:18:07,158 [INFO] PluginManage:310 - Check plugin lpbam
-2025-09-20 00:18:07,179 [INFO] PluginManage:359 - Loaded plugin lpbam (category:base,tabindex:0)
-2025-09-20 00:18:07,179 [INFO] PluginManage:310 - Check plugin memorymap
-2025-09-20 00:18:07,206 [INFO] PluginManage:359 - Loaded plugin memorymap (category:base,tabindex:4)
-2025-09-20 00:18:07,206 [INFO] PluginManage:310 - Check plugin pinoutandconfiguration
-2025-09-20 00:18:07,226 [INFO] PluginManage:359 - Loaded plugin pinoutandconfiguration (category:base,tabindex:1)
-2025-09-20 00:18:07,226 [INFO] PluginManage:310 - Check plugin pinoutconfig
-2025-09-20 00:18:07,453 [WARN] SupportedApi:132 - Cannot load RTOS API schema: s4s-elt-must-match.1: The content of 'definitions' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.
-2025-09-20 00:18:07,807 [INFO] PluginManage:359 - Loaded plugin pinoutconfig (category:base,tabindex:0)
-2025-09-20 00:18:07,807 [INFO] PluginManage:310 - Check plugin power
-2025-09-20 00:18:07,838 [INFO] PluginManage:359 - Loaded plugin power (category:power,tabindex:4)
-2025-09-20 00:18:07,839 [INFO] PluginManage:310 - Check plugin projectmanager
-2025-09-20 00:18:07,888 [INFO] PluginManage:359 - Loaded plugin projectmanager (category:projectmanager,tabindex:4)
-2025-09-20 00:18:07,889 [INFO] PluginManage:310 - Check plugin rif
-2025-09-20 00:18:07,912 [INFO] PluginManage:359 - Loaded plugin rif (category:base,tabindex:3)
-2025-09-20 00:18:07,913 [INFO] PluginManage:310 - Check plugin thirdparty
-2025-09-20 00:18:08,213 [INFO] PluginManage:359 - Loaded plugin thirdparty (category:base,tabindex:-1)
-2025-09-20 00:18:08,213 [WARN] IntegrityCheckThread:84 - waiting for thirdparty lock release [integrity check]
-2025-09-20 00:18:08,214 [INFO] IntegrityCheckThread:86 - entering critical section [integrity check]
-2025-09-20 00:18:08,214 [INFO] PluginManage:310 - Check plugin tools
-2025-09-20 00:18:08,215 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [1/15]
-2025-09-20 00:18:08,218 [INFO] PluginManage:359 - Loaded plugin tools (category:base,tabindex:7)
-2025-09-20 00:18:08,219 [INFO] PluginManage:310 - Check plugin tutovideos
-2025-09-20 00:18:08,792 [INFO] PluginManage:359 - Loaded plugin tutovideos (category:base,tabindex:-1)
-2025-09-20 00:18:08,792 [INFO] PluginManage:310 - Check plugin updater
-2025-09-20 00:18:08,984 [INFO] PluginManage:359 - Loaded plugin updater (category:base,tabindex:12)
-2025-09-20 00:18:08,985 [INFO] PluginManage:310 - Check plugin userauth
-2025-09-20 00:18:09,002 [INFO] UserAuth:118 - Init User Auth plugin
-2025-09-20 00:18:09,005 [INFO] PluginManage:359 - Loaded plugin userauth (category:base,tabindex:14)
-2025-09-20 00:18:09,007 [INFO] PluginManage:283 - PluginManage : Loaded plugins [18]
-2025-09-20 00:18:09,573 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 00:18:09,757 [INFO] CADModel:165 - CPN selected for project level
-2025-09-20 00:18:09,757 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 00:18:09,788 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,789 [INFO] PluginManager:220 - loadIPPluginJar : add gtzc
-2025-09-20 00:18:09,808 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,810 [INFO] PluginManager:220 - loadIPPluginJar : add usbx
-2025-09-20 00:18:09,814 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,815 [INFO] PluginManager:220 - loadIPPluginJar : add fatfs
-2025-09-20 00:18:09,822 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,822 [INFO] PluginManager:220 - loadIPPluginJar : add i2c
-2025-09-20 00:18:09,828 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,828 [INFO] PluginManager:220 - loadIPPluginJar : add tim
-2025-09-20 00:18:09,834 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,834 [INFO] PluginManager:220 - loadIPPluginJar : add quadspi
-2025-09-20 00:18:09,850 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,853 [INFO] PluginManager:220 - loadIPPluginJar : add ipddr
-2025-09-20 00:18:09,867 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,870 [INFO] PluginManager:220 - loadIPPluginJar : add i2s
-2025-09-20 00:18:09,883 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,884 [INFO] PluginManager:220 - loadIPPluginJar : add openamp
-2025-09-20 00:18:09,892 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,893 [INFO] PluginManager:220 - loadIPPluginJar : add i3c
-2025-09-20 00:18:09,897 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,897 [INFO] PluginManager:220 - loadIPPluginJar : add ucpd
-2025-09-20 00:18:09,903 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,903 [INFO] PluginManager:220 - loadIPPluginJar : add cryp
-2025-09-20 00:18:09,908 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,909 [INFO] PluginManager:220 - loadIPPluginJar : add comp
-2025-09-20 00:18:09,916 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,917 [INFO] PluginManager:220 - loadIPPluginJar : add spi
-2025-09-20 00:18:09,925 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,925 [INFO] PluginManager:220 - loadIPPluginJar : add touchsensing
-2025-09-20 00:18:09,932 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,932 [INFO] PluginManager:220 - loadIPPluginJar : add can
-2025-09-20 00:18:09,939 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,940 [INFO] PluginManager:220 - loadIPPluginJar : add aes
-2025-09-20 00:18:09,978 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,979 [INFO] PluginManager:220 - loadIPPluginJar : add adc
-2025-09-20 00:18:09,992 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:09,994 [INFO] PluginManager:220 - loadIPPluginJar : add nvic
-2025-09-20 00:18:10,018 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,019 [INFO] PluginManager:220 - loadIPPluginJar : add freertos
-2025-09-20 00:18:10,049 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,050 [INFO] PluginManager:220 - loadIPPluginJar : add dma
-2025-09-20 00:18:10,063 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,066 [INFO] PluginManager:220 - loadIPPluginJar : add resmgrutility
-2025-09-20 00:18:10,077 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,077 [INFO] PluginManager:220 - loadIPPluginJar : add pdm2pcm
-2025-09-20 00:18:10,089 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,093 [INFO] PluginManager:220 - loadIPPluginJar : add hash
-2025-09-20 00:18:10,106 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,107 [INFO] PluginManager:220 - loadIPPluginJar : add dfsdm
-2025-09-20 00:18:10,111 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,114 [INFO] PluginManager:220 - loadIPPluginJar : add radio
-2025-09-20 00:18:10,136 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,142 [INFO] PluginManager:220 - loadIPPluginJar : add plateformsettings
-2025-09-20 00:18:10,157 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,158 [INFO] PluginManager:220 - loadIPPluginJar : add gic
-2025-09-20 00:18:10,163 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,163 [INFO] PluginManager:220 - loadIPPluginJar : add ltdc
-2025-09-20 00:18:10,168 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,168 [INFO] PluginManager:220 - loadIPPluginJar : add tracer_emb
-2025-09-20 00:18:10,174 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,175 [INFO] PluginManager:220 - loadIPPluginJar : add lorawan
-2025-09-20 00:18:10,181 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,181 [INFO] PluginManager:220 - loadIPPluginJar : add tsc
-2025-09-20 00:18:10,188 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,189 [INFO] PluginManager:220 - loadIPPluginJar : add ts
-2025-09-20 00:18:10,194 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,194 [INFO] PluginManager:220 - loadIPPluginJar : add gfxmmu
-2025-09-20 00:18:10,201 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,203 [INFO] PluginManager:220 - loadIPPluginJar : add dma3
-2025-09-20 00:18:10,211 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,211 [INFO] PluginManager:220 - loadIPPluginJar : add ddr_ctrl_phy
-2025-09-20 00:18:10,216 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,217 [INFO] PluginManager:220 - loadIPPluginJar : add genericplugin
-2025-09-20 00:18:10,226 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,227 [INFO] PluginManager:220 - loadIPPluginJar : add opamp
-2025-09-20 00:18:10,270 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,271 [INFO] PluginManager:220 - loadIPPluginJar : add stm32_wpan
-2025-09-20 00:18:10,281 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,282 [INFO] PluginManager:220 - loadIPPluginJar : add usart
-2025-09-20 00:18:10,298 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,298 [INFO] PluginManager:220 - loadIPPluginJar : add sai
-2025-09-20 00:18:10,321 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,321 [INFO] PluginManager:220 - loadIPPluginJar : add linkedlist
-2025-09-20 00:18:10,328 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,329 [INFO] PluginManager:220 - loadIPPluginJar : add extmemmanager
-2025-09-20 00:18:10,347 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,347 [INFO] PluginManager:220 - loadIPPluginJar : add fmc
-2025-09-20 00:18:10,364 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,365 [INFO] PluginManager:220 - loadIPPluginJar : add gpio
-2025-09-20 00:18:10,390 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 00:18:10,392 [INFO] PluginManager:220 - loadIPPluginJar : add mdma
-2025-09-20 00:18:10,627 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:10,764 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
-2025-09-20 00:18:10,813 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
-2025-09-20 00:18:10,925 [INFO] CADModel:165 - CPN selected for project level
-2025-09-20 00:18:10,926 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 00:18:10,926 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:10,927 [ERROR] CADModel:125 - Updater not yet initialized, retry later
-2025-09-20 00:18:11,216 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [2/15]
-2025-09-20 00:18:11,529 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:11,558 [INFO] CADModel:165 - CPN selected for project level
-2025-09-20 00:18:11,565 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 00:18:11,566 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:11,566 [ERROR] CADModel:125 - Updater not yet initialized, retry later
-2025-09-20 00:18:11,605 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:12,162 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:12,177 [INFO] DbMcusAds:53 - JSON generation date=Tue Jul 08 03:14:23 CDT 2025 (1751962463524)
-2025-09-20 00:18:12,177 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:12,294 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
-2025-09-20 00:18:12,540 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:12,545 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:12,546 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:12,546 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
-2025-09-20 00:18:12,550 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 00:18:12,670 [ERROR] Updater:1198 - MainUpdater not yet initialized. External WinMGr cannot be set.
-2025-09-20 00:18:12,674 [INFO] Updater:1134 - Updater Version found : 6.15.0
-2025-09-20 00:18:12,733 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
-2025-09-20 00:18:13,880 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 00:18:13,881 [INFO] MainUpdater:289 - Updater Check For Update Now.
-2025-09-20 00:18:13,881 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 00:18:13,891 [INFO] McuFinderGlobals:63 - Set McuFinder mode to 2 (CubeIDE integrated)
-2025-09-20 00:18:13,894 [INFO] UserAuth:487 - Internet connection configuration mode: 1
-2025-09-20 00:18:13,963 [INFO] JxBrowserEngine:152 - Initiate JxBrowser Engine with user profile folder
-2025-09-20 00:18:14,221 [WARN] MainUpdater:1193 - Updater busy. Cannot search thirdparties
-2025-09-20 00:18:14,222 [INFO] ThirdPartyUpdaterWithRetryManager:96 - Updater plugin is busy. [1/15]
-2025-09-20 00:18:14,365 [INFO] CheckServerUpdateThread:120 - End of CheckServer Thread
-2025-09-20 00:18:16,311 [INFO] WebApp:169 - Instantiating new browser for Auth
-2025-09-20 00:18:17,881 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENVWB1.1.4.0
-2025-09-20 00:18:17,940 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-ASTRA1.2.0.2
-2025-09-20 00:18:17,967 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SMBUS.2.1.0
-2025-09-20 00:18:17,989 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST60.1.0.0
-2025-09-20 00:18:18,194 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F7.1.1.0
-2025-09-20 00:18:18,236 [WARN] PackLoader:240 - Cannot read IP mode file for WES.I-CUBE-Cesium.1.4.0
-2025-09-20 00:18:18,449 [WARN] PackLoader:240 - Cannot read IP mode file for Infineon.AIROC-Wi-Fi-Bluetooth-STM32.1.7.1
-2025-09-20 00:18:18,610 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7.3.4.0
-2025-09-20 00:18:18,654 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DISPLAY.3.0.0
-2025-09-20 00:18:18,710 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC10.1.0.0
-2025-09-20 00:18:18,742 [WARN] PackLoader:240 - Cannot read IP mode file for emotas.I-CUBE-CANOPEN.1.3.0
-2025-09-20 00:18:18,791 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STBOX1.2.1.0
-2025-09-20 00:18:18,825 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-SMARTAG2.1.2.0
-2025-09-20 00:18:18,846 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-FLIGHT1.5.1.0
-2025-09-20 00:18:18,923 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 00:18:18,929 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 00:18:18,930 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 00:18:18,931 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 00:18:18,932 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 00:18:18,951 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WL.2.0.0
-2025-09-20 00:18:18,968 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENV1.5.0.0
-2025-09-20 00:18:19,000 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE2.3.3.0
-2025-09-20 00:18:19,024 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC9.1.0.0
-2025-09-20 00:18:19,050 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSL.5.8.2
-2025-09-20 00:18:19,071 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE1.7.1.0
-2025-09-20 00:18:19,100 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfMQTT.1.19.2
-2025-09-20 00:18:19,171 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-EEPRMA1.5.2.0
-2025-09-20 00:18:19,290 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G0.1.1.0
-2025-09-20 00:18:19,317 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SAFEA1.1.2.2
-2025-09-20 00:18:19,341 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC4.3.0.0
-2025-09-20 00:18:19,440 [WARN] PackLoader:240 - Cannot read IP mode file for EmbeddedOffice.I-CUBE-FS-RTOS.1.0.1
-2025-09-20 00:18:19,492 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-WB05N.2.0.0
-2025-09-20 00:18:19,572 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfTPM.3.8.0
-2025-09-20 00:18:19,634 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TCPP.4.2.0
-2025-09-20 00:18:19,688 [WARN] PackLoader:240 - Cannot read IP mode file for RealThread.X-CUBE-RT-Thread_Nano.4.1.1
-2025-09-20 00:18:19,714 [INFO] WebApp:463 - Apply proxy settings
-2025-09-20 00:18:19,716 [INFO] WebApp:548 - Chromium requires no authentication
-2025-09-20 00:18:19,722 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-SIGFOX1.3.2.0
-2025-09-20 00:18:19,765 [WARN] PackLoader:240 - Cannot read IP mode file for ITTIA_DB.I-CUBE-ITTIADB.8.9.0
-2025-09-20 00:18:19,766 [INFO] WebApp:491 - Direct internet connection detected
-2025-09-20 00:18:19,798 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST67W61.1.0.0
-2025-09-20 00:18:19,822 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AI.10.2.0
-2025-09-20 00:18:19,865 [INFO] WebApp:900 - Register for checkConnection events
-2025-09-20 00:18:19,866 [INFO] WebApp:463 - Apply proxy settings
-2025-09-20 00:18:19,866 [INFO] WebApp:548 - Chromium requires no authentication
-2025-09-20 00:18:19,868 [INFO] WebApp:491 - Direct internet connection detected
-2025-09-20 00:18:19,986 [WARN] PackLoader:240 - Cannot read IP mode file for SEGGER.I-CUBE-embOS.1.3.1
-2025-09-20 00:18:20,190 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALGOBUILD.1.4.0
-2025-09-20 00:18:20,440 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-MEMS1.11.3.0
-2025-09-20 00:18:20,500 [INFO] WebApp:225 - Starting web application
-2025-09-20 00:18:20,500 [INFO] WebApp:593 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient1/index.html
-2025-09-20 00:18:21,099 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-PM33A1.1.0.0
-2025-09-20 00:18:21,116 [INFO] WebApp:191 - Connection restablished
-2025-09-20 00:18:21,195 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F4.1.1.0
-2025-09-20 00:18:21,213 [WARN] PackLoader:240 - Cannot read IP mode file for Avnet-IotConnect.X-CUBE-IoTC-DA16k-PMOD.1.0.0
-2025-09-20 00:18:21,223 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ISPU.2.1.0
-2025-09-20 00:18:21,249 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC12.1.0.0
-2025-09-20 00:18:21,325 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L5.2.0.0
-2025-09-20 00:18:21,362 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC6.3.1.0
-2025-09-20 00:18:21,383 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-FREERTOS.1.3.1
-2025-09-20 00:18:21,415 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STAIOTCFT.1.0.0
-2025-09-20 00:18:21,533 [INFO] UserAuth:487 - Internet connection configuration mode: 1
-2025-09-20 00:18:21,548 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DPower.1.3.0
-2025-09-20 00:18:21,751 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 00:18:21,762 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L4.2.0.0
-2025-09-20 00:18:21,782 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 00:18:21,783 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 00:18:21,793 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 00:18:21,858 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SFXS2LP1.4.0.0
-2025-09-20 00:18:21,999 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLEMGR.4.1.0
-2025-09-20 00:18:22,204 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 00:18:22,206 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 00:18:22,230 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WB.2.0.0
-2025-09-20 00:18:22,234 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 00:18:22,237 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 00:18:22,241 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 00:18:22,242 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 00:18:22,242 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 00:18:22,288 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-GNSS1.7.0.1
-2025-09-20 00:18:22,315 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOUCHGFX.4.25.0
-2025-09-20 00:18:22,323 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : Cortex-A Device cause : null
-2025-09-20 00:18:22,361 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
-2025-09-20 00:18:22,362 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
-2025-09-20 00:18:22,364 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
-2025-09-20 00:18:22,405 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SUBG2.5.0.0
-2025-09-20 00:18:22,522 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7RS.1.1.0
-2025-09-20 00:18:22,540 [WARN] PackLoader:240 - Cannot read IP mode file for Cesanta.I-CUBE-Mongoose.7.13.0
-2025-09-20 00:18:22,670 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G4.2.0.0
-2025-09-20 00:18:22,686 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSH.1.4.20
-2025-09-20 00:18:22,700 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC7.2.0.0
-2025-09-20 00:18:22,751 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-IPS.3.1.0
-2025-09-20 00:18:22,782 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALS.1.0.2
-2025-09-20 00:18:22,827 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-STSE01.1.0.0
-2025-09-20 00:18:22,857 [WARN] PackLoader:240 - Cannot read IP mode file for portGmbH.I-Cube-SoM-uGOAL.1.1.0
-2025-09-20 00:18:22,909 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOF1.3.4.3
-2025-09-20 00:18:22,981 [INFO] ThirdParty:978 - Integrity check success = true
-2025-09-20 00:18:22,983 [INFO] IntegrityCheckThread:100 - exiting critical section [integrity check]
-2025-09-20 00:18:22,983 [INFO] IntegrityCheckThread:103 - End integrity checks thread
-2025-09-20 00:28:55,985 [ERROR] LogOutputStream:75 - [STDERR_REDIRECT]
-2025-09-20 02:01:19,323 [INFO] Activator:176 -
-
-
-2025-09-20 02:01:19,326 [INFO] Activator:177 - !SESSION log4j initialized
-2025-09-20 02:01:29,979 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT]
-2025-09-20 02:01:34,491 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
-2025-09-20 02:01:34,519 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
-2025-09-20 02:01:34,519 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
-2025-09-20 02:01:34,520 [WARN] ApiDb:259 - Overriding images path with different value: => /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
-2025-09-20 02:01:34,525 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 02:01:34,527 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 02:01:34,530 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
-2025-09-20 02:01:34,757 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
-2025-09-20 02:01:34,903 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
-2025-09-20 02:01:34,903 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
-2025-09-20 02:01:34,903 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
-2025-09-20 02:01:34,904 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 02:01:34,904 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 02:01:34,904 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 02:01:34,904 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 02:01:34,904 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 02:01:34,905 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 02:01:34,905 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
-2025-09-20 02:01:35,033 [INFO] MainPanel:274 - HeapMemory: 268435456
-2025-09-20 02:01:35,440 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
-2025-09-20 02:01:35,441 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
-2025-09-20 02:01:35,441 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
-2025-09-20 02:01:35,442 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 02:01:35,442 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 02:01:35,442 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 02:01:35,443 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 02:01:35,443 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 02:01:35,443 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 02:01:35,443 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
-2025-09-20 02:01:35,480 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
-2025-09-20 02:01:35,483 [INFO] PluginManage:196 - Search for loadable plugins [exclusion list=, ]
-2025-09-20 02:01:35,487 [INFO] PluginManage:310 - Check plugin analytics
-2025-09-20 02:01:36,187 [INFO] AnalyticsPlugin:253 - Accepted Software Licenses: STM32CubeMX.6.15.0
-2025-09-20 02:01:36,187 [INFO] AnalyticsPlugin:255 - Accepted CMSIS Pack Licenses:
-2025-09-20 02:01:36,188 [INFO] AnalyticsPlugin:257 - Accepted Firmware Licenses: FW.F4.1.28.0
-2025-09-20 02:01:36,204 [INFO] PluginManage:359 - Loaded plugin analytics (category:tool,tabindex:-1)
-2025-09-20 02:01:36,211 [INFO] PluginManage:310 - Check plugin cadmodel
-2025-09-20 02:01:36,229 [INFO] CADModel:105 - Init CAD model plugin
-2025-09-20 02:01:36,229 [INFO] PluginManage:359 - Loaded plugin cadmodel (category:power,tabindex:5)
-2025-09-20 02:01:36,230 [INFO] PluginManage:310 - Check plugin clock
-2025-09-20 02:01:36,264 [INFO] PluginManage:359 - Loaded plugin clock (category:base,tabindex:2)
-2025-09-20 02:01:36,265 [INFO] PluginManage:310 - Check plugin ddr
-2025-09-20 02:01:36,271 [INFO] PluginManage:359 - Loaded plugin ddr (category:tool,tabindex:6)
-2025-09-20 02:01:36,273 [INFO] PluginManage:310 - Check plugin filemanager
-2025-09-20 02:01:36,733 [INFO] PluginManage:359 - Loaded plugin filemanager (category:base,tabindex:10)
-2025-09-20 02:01:36,734 [INFO] PluginManage:310 - Check plugin ipmanager
-2025-09-20 02:01:36,755 [INFO] PluginManage:359 - Loaded plugin ipmanager (category:base,tabindex:5)
-2025-09-20 02:01:36,756 [INFO] PluginManage:310 - Check plugin lpbam
-2025-09-20 02:01:36,776 [INFO] PluginManage:359 - Loaded plugin lpbam (category:base,tabindex:0)
-2025-09-20 02:01:36,776 [INFO] PluginManage:310 - Check plugin memorymap
-2025-09-20 02:01:36,805 [INFO] PluginManage:359 - Loaded plugin memorymap (category:base,tabindex:4)
-2025-09-20 02:01:36,805 [INFO] PluginManage:310 - Check plugin pinoutandconfiguration
-2025-09-20 02:01:36,837 [INFO] PluginManage:359 - Loaded plugin pinoutandconfiguration (category:base,tabindex:1)
-2025-09-20 02:01:36,840 [INFO] PluginManage:310 - Check plugin pinoutconfig
-2025-09-20 02:01:37,068 [WARN] SupportedApi:132 - Cannot load RTOS API schema: s4s-elt-must-match.1: The content of 'definitions' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.
-2025-09-20 02:01:37,335 [INFO] PluginManage:359 - Loaded plugin pinoutconfig (category:base,tabindex:0)
-2025-09-20 02:01:37,335 [INFO] PluginManage:310 - Check plugin power
-2025-09-20 02:01:37,351 [INFO] PluginManage:359 - Loaded plugin power (category:power,tabindex:4)
-2025-09-20 02:01:37,352 [INFO] PluginManage:310 - Check plugin projectmanager
-2025-09-20 02:01:37,387 [INFO] PluginManage:359 - Loaded plugin projectmanager (category:projectmanager,tabindex:4)
-2025-09-20 02:01:37,387 [INFO] PluginManage:310 - Check plugin rif
-2025-09-20 02:01:37,404 [INFO] PluginManage:359 - Loaded plugin rif (category:base,tabindex:3)
-2025-09-20 02:01:37,405 [INFO] PluginManage:310 - Check plugin thirdparty
-2025-09-20 02:01:37,639 [INFO] PluginManage:359 - Loaded plugin thirdparty (category:base,tabindex:-1)
-2025-09-20 02:01:37,638 [WARN] IntegrityCheckThread:84 - waiting for thirdparty lock release [integrity check]
-2025-09-20 02:01:37,639 [INFO] PluginManage:310 - Check plugin tools
-2025-09-20 02:01:37,639 [INFO] IntegrityCheckThread:86 - entering critical section [integrity check]
-2025-09-20 02:01:37,640 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [1/15]
-2025-09-20 02:01:37,643 [INFO] PluginManage:359 - Loaded plugin tools (category:base,tabindex:7)
-2025-09-20 02:01:37,643 [INFO] PluginManage:310 - Check plugin tutovideos
-2025-09-20 02:01:37,977 [INFO] PluginManage:359 - Loaded plugin tutovideos (category:base,tabindex:-1)
-2025-09-20 02:01:37,977 [INFO] PluginManage:310 - Check plugin updater
-2025-09-20 02:01:38,014 [INFO] PluginManage:359 - Loaded plugin updater (category:base,tabindex:12)
-2025-09-20 02:01:38,014 [INFO] PluginManage:310 - Check plugin userauth
-2025-09-20 02:01:38,021 [INFO] UserAuth:118 - Init User Auth plugin
-2025-09-20 02:01:38,024 [INFO] PluginManage:359 - Loaded plugin userauth (category:base,tabindex:14)
-2025-09-20 02:01:38,025 [INFO] PluginManage:283 - PluginManage : Loaded plugins [18]
-2025-09-20 02:01:38,300 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 02:01:38,407 [INFO] CADModel:165 - CPN selected for project level
-2025-09-20 02:01:38,407 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 02:01:38,425 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,426 [INFO] PluginManager:220 - loadIPPluginJar : add gtzc
-2025-09-20 02:01:38,434 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,434 [INFO] PluginManager:220 - loadIPPluginJar : add usbx
-2025-09-20 02:01:38,436 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,436 [INFO] PluginManager:220 - loadIPPluginJar : add fatfs
-2025-09-20 02:01:38,440 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,441 [INFO] PluginManager:220 - loadIPPluginJar : add i2c
-2025-09-20 02:01:38,443 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,443 [INFO] PluginManager:220 - loadIPPluginJar : add tim
-2025-09-20 02:01:38,445 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,445 [INFO] PluginManager:220 - loadIPPluginJar : add quadspi
-2025-09-20 02:01:38,450 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,450 [INFO] PluginManager:220 - loadIPPluginJar : add ipddr
-2025-09-20 02:01:38,456 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,456 [INFO] PluginManager:220 - loadIPPluginJar : add i2s
-2025-09-20 02:01:38,461 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,462 [INFO] PluginManager:220 - loadIPPluginJar : add openamp
-2025-09-20 02:01:38,465 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,465 [INFO] PluginManager:220 - loadIPPluginJar : add i3c
-2025-09-20 02:01:38,468 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,468 [INFO] PluginManager:220 - loadIPPluginJar : add ucpd
-2025-09-20 02:01:38,471 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,471 [INFO] PluginManager:220 - loadIPPluginJar : add cryp
-2025-09-20 02:01:38,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,474 [INFO] PluginManager:220 - loadIPPluginJar : add comp
-2025-09-20 02:01:38,477 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,477 [INFO] PluginManager:220 - loadIPPluginJar : add spi
-2025-09-20 02:01:38,482 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,483 [INFO] PluginManager:220 - loadIPPluginJar : add touchsensing
-2025-09-20 02:01:38,488 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,488 [INFO] PluginManager:220 - loadIPPluginJar : add can
-2025-09-20 02:01:38,493 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,493 [INFO] PluginManager:220 - loadIPPluginJar : add aes
-2025-09-20 02:01:38,505 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,505 [INFO] PluginManager:220 - loadIPPluginJar : add adc
-2025-09-20 02:01:38,510 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,511 [INFO] PluginManager:220 - loadIPPluginJar : add nvic
-2025-09-20 02:01:38,519 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,520 [INFO] PluginManager:220 - loadIPPluginJar : add freertos
-2025-09-20 02:01:38,531 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,532 [INFO] PluginManager:220 - loadIPPluginJar : add dma
-2025-09-20 02:01:38,536 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,536 [INFO] PluginManager:220 - loadIPPluginJar : add resmgrutility
-2025-09-20 02:01:38,540 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,541 [INFO] PluginManager:220 - loadIPPluginJar : add pdm2pcm
-2025-09-20 02:01:38,544 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,544 [INFO] PluginManager:220 - loadIPPluginJar : add hash
-2025-09-20 02:01:38,547 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,548 [INFO] PluginManager:220 - loadIPPluginJar : add dfsdm
-2025-09-20 02:01:38,550 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,551 [INFO] PluginManager:220 - loadIPPluginJar : add radio
-2025-09-20 02:01:38,563 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,568 [INFO] PluginManager:220 - loadIPPluginJar : add plateformsettings
-2025-09-20 02:01:38,576 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,576 [INFO] PluginManager:220 - loadIPPluginJar : add gic
-2025-09-20 02:01:38,578 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,578 [INFO] PluginManager:220 - loadIPPluginJar : add ltdc
-2025-09-20 02:01:38,580 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,581 [INFO] PluginManager:220 - loadIPPluginJar : add tracer_emb
-2025-09-20 02:01:38,585 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,585 [INFO] PluginManager:220 - loadIPPluginJar : add lorawan
-2025-09-20 02:01:38,588 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,589 [INFO] PluginManager:220 - loadIPPluginJar : add tsc
-2025-09-20 02:01:38,592 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,593 [INFO] PluginManager:220 - loadIPPluginJar : add ts
-2025-09-20 02:01:38,595 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,595 [INFO] PluginManager:220 - loadIPPluginJar : add gfxmmu
-2025-09-20 02:01:38,598 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,599 [INFO] PluginManager:220 - loadIPPluginJar : add dma3
-2025-09-20 02:01:38,602 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,602 [INFO] PluginManager:220 - loadIPPluginJar : add ddr_ctrl_phy
-2025-09-20 02:01:38,604 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,605 [INFO] PluginManager:220 - loadIPPluginJar : add genericplugin
-2025-09-20 02:01:38,608 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,609 [INFO] PluginManager:220 - loadIPPluginJar : add opamp
-2025-09-20 02:01:38,620 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,621 [INFO] PluginManager:220 - loadIPPluginJar : add stm32_wpan
-2025-09-20 02:01:38,626 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,627 [INFO] PluginManager:220 - loadIPPluginJar : add usart
-2025-09-20 02:01:38,631 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,631 [INFO] PluginManager:220 - loadIPPluginJar : add sai
-2025-09-20 02:01:38,642 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,643 [INFO] PluginManager:220 - loadIPPluginJar : add linkedlist
-2025-09-20 02:01:38,647 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,647 [INFO] PluginManager:220 - loadIPPluginJar : add extmemmanager
-2025-09-20 02:01:38,656 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,657 [INFO] PluginManager:220 - loadIPPluginJar : add fmc
-2025-09-20 02:01:38,664 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,664 [INFO] PluginManager:220 - loadIPPluginJar : add gpio
-2025-09-20 02:01:38,674 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:01:38,674 [INFO] PluginManager:220 - loadIPPluginJar : add mdma
-2025-09-20 02:01:38,813 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:38,875 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
-2025-09-20 02:01:38,906 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
-2025-09-20 02:01:38,926 [INFO] CADModel:165 - CPN selected for project level
-2025-09-20 02:01:38,927 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 02:01:38,927 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:38,927 [ERROR] CADModel:125 - Updater not yet initialized, retry later
-2025-09-20 02:01:39,268 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:39,271 [INFO] CADModel:165 - CPN selected for project level
-2025-09-20 02:01:39,271 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 02:01:39,272 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:39,272 [ERROR] CADModel:125 - Updater not yet initialized, retry later
-2025-09-20 02:01:39,280 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:39,649 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:39,663 [INFO] DbMcusAds:53 - JSON generation date=Tue Jul 08 03:14:23 CDT 2025 (1751962463524)
-2025-09-20 02:01:39,663 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:39,743 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
-2025-09-20 02:01:39,904 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:39,907 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:39,907 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:39,907 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
-2025-09-20 02:01:39,909 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 02:01:39,978 [ERROR] Updater:1198 - MainUpdater not yet initialized. External WinMGr cannot be set.
-2025-09-20 02:01:39,981 [INFO] Updater:1134 - Updater Version found : 6.15.0
-2025-09-20 02:01:40,011 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
-2025-09-20 02:01:40,640 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [2/15]
-2025-09-20 02:01:40,942 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 02:01:40,943 [INFO] MainUpdater:289 - Updater Check For Update Now.
-2025-09-20 02:01:40,943 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 02:01:40,951 [INFO] McuFinderGlobals:63 - Set McuFinder mode to 2 (CubeIDE integrated)
-2025-09-20 02:01:40,952 [INFO] UserAuth:487 - Internet connection configuration mode: 1
-2025-09-20 02:01:40,982 [INFO] JxBrowserEngine:152 - Initiate JxBrowser Engine with user profile folder
-2025-09-20 02:01:41,258 [INFO] CheckServerUpdateThread:120 - End of CheckServer Thread
-2025-09-20 02:01:42,340 [INFO] WebApp:169 - Instantiating new browser for Auth
-2025-09-20 02:01:44,133 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENVWB1.1.4.0
-2025-09-20 02:01:44,181 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-ASTRA1.2.0.2
-2025-09-20 02:01:44,214 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SMBUS.2.1.0
-2025-09-20 02:01:44,229 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST60.1.0.0
-2025-09-20 02:01:44,387 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F7.1.1.0
-2025-09-20 02:01:44,458 [WARN] PackLoader:240 - Cannot read IP mode file for WES.I-CUBE-Cesium.1.4.0
-2025-09-20 02:01:44,561 [WARN] PackLoader:240 - Cannot read IP mode file for Infineon.AIROC-Wi-Fi-Bluetooth-STM32.1.7.1
-2025-09-20 02:01:44,738 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7.3.4.0
-2025-09-20 02:01:44,797 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DISPLAY.3.0.0
-2025-09-20 02:01:44,839 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC10.1.0.0
-2025-09-20 02:01:44,871 [WARN] PackLoader:240 - Cannot read IP mode file for emotas.I-CUBE-CANOPEN.1.3.0
-2025-09-20 02:01:44,914 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STBOX1.2.1.0
-2025-09-20 02:01:44,948 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-SMARTAG2.1.2.0
-2025-09-20 02:01:44,958 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-FLIGHT1.5.1.0
-2025-09-20 02:01:44,988 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 02:01:44,991 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 02:01:44,992 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 02:01:44,992 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 02:01:44,993 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 02:01:45,005 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WL.2.0.0
-2025-09-20 02:01:45,185 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENV1.5.0.0
-2025-09-20 02:01:45,207 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE2.3.3.0
-2025-09-20 02:01:45,226 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC9.1.0.0
-2025-09-20 02:01:45,245 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSL.5.8.2
-2025-09-20 02:01:45,256 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE1.7.1.0
-2025-09-20 02:01:45,261 [INFO] WebApp:463 - Apply proxy settings
-2025-09-20 02:01:45,263 [INFO] WebApp:548 - Chromium requires no authentication
-2025-09-20 02:01:45,264 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfMQTT.1.19.2
-2025-09-20 02:01:45,281 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-EEPRMA1.5.2.0
-2025-09-20 02:01:45,314 [INFO] WebApp:491 - Direct internet connection detected
-2025-09-20 02:01:45,345 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G0.1.1.0
-2025-09-20 02:01:45,376 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SAFEA1.1.2.2
-2025-09-20 02:01:45,405 [INFO] WebApp:900 - Register for checkConnection events
-2025-09-20 02:01:45,406 [INFO] WebApp:463 - Apply proxy settings
-2025-09-20 02:01:45,406 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC4.3.0.0
-2025-09-20 02:01:45,406 [INFO] WebApp:548 - Chromium requires no authentication
-2025-09-20 02:01:45,407 [INFO] WebApp:491 - Direct internet connection detected
-2025-09-20 02:01:45,444 [WARN] PackLoader:240 - Cannot read IP mode file for EmbeddedOffice.I-CUBE-FS-RTOS.1.0.1
-2025-09-20 02:01:45,459 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-WB05N.2.0.0
-2025-09-20 02:01:45,470 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfTPM.3.8.0
-2025-09-20 02:01:45,485 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TCPP.4.2.0
-2025-09-20 02:01:45,500 [WARN] PackLoader:240 - Cannot read IP mode file for RealThread.X-CUBE-RT-Thread_Nano.4.1.1
-2025-09-20 02:01:45,507 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-SIGFOX1.3.2.0
-2025-09-20 02:01:45,517 [WARN] PackLoader:240 - Cannot read IP mode file for ITTIA_DB.I-CUBE-ITTIADB.8.9.0
-2025-09-20 02:01:45,531 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST67W61.1.0.0
-2025-09-20 02:01:45,543 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AI.10.2.0
-2025-09-20 02:01:45,618 [WARN] PackLoader:240 - Cannot read IP mode file for SEGGER.I-CUBE-embOS.1.3.1
-2025-09-20 02:01:45,842 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALGOBUILD.1.4.0
-2025-09-20 02:01:46,193 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-MEMS1.11.3.0
-2025-09-20 02:01:46,341 [INFO] WebApp:225 - Starting web application
-2025-09-20 02:01:46,342 [INFO] WebApp:593 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient1/index.html
-2025-09-20 02:01:46,427 [INFO] WebApp:191 - Connection restablished
-2025-09-20 02:01:47,072 [INFO] UserAuth:487 - Internet connection configuration mode: 1
-2025-09-20 02:01:47,279 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-PM33A1.1.0.0
-2025-09-20 02:01:47,330 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F4.1.1.0
-2025-09-20 02:01:47,352 [WARN] PackLoader:240 - Cannot read IP mode file for Avnet-IotConnect.X-CUBE-IoTC-DA16k-PMOD.1.0.0
-2025-09-20 02:01:47,377 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ISPU.2.1.0
-2025-09-20 02:01:47,398 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC12.1.0.0
-2025-09-20 02:01:47,515 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L5.2.0.0
-2025-09-20 02:01:47,564 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC6.3.1.0
-2025-09-20 02:01:47,603 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-FREERTOS.1.3.1
-2025-09-20 02:01:47,616 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STAIOTCFT.1.0.0
-2025-09-20 02:01:47,632 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DPower.1.3.0
-2025-09-20 02:01:47,689 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 02:01:47,691 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L4.2.0.0
-2025-09-20 02:01:47,695 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 02:01:47,696 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 02:01:47,698 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 02:01:47,718 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SFXS2LP1.4.0.0
-2025-09-20 02:01:47,754 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLEMGR.4.1.0
-2025-09-20 02:01:47,792 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 02:01:47,792 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 02:01:47,799 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WB.2.0.0
-2025-09-20 02:01:47,800 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 02:01:47,801 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 02:01:47,803 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 02:01:47,805 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 02:01:47,805 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 02:01:47,818 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-GNSS1.7.0.1
-2025-09-20 02:01:47,834 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOUCHGFX.4.25.0
-2025-09-20 02:01:47,843 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : Cortex-A Device cause : null
-2025-09-20 02:01:47,884 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
-2025-09-20 02:01:47,884 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
-2025-09-20 02:01:47,885 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
-2025-09-20 02:01:47,913 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SUBG2.5.0.0
-2025-09-20 02:01:47,982 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7RS.1.1.0
-2025-09-20 02:01:47,996 [WARN] PackLoader:240 - Cannot read IP mode file for Cesanta.I-CUBE-Mongoose.7.13.0
-2025-09-20 02:01:48,036 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G4.2.0.0
-2025-09-20 02:01:48,047 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSH.1.4.20
-2025-09-20 02:01:48,113 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC7.2.0.0
-2025-09-20 02:01:48,162 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-IPS.3.1.0
-2025-09-20 02:01:48,187 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALS.1.0.2
-2025-09-20 02:01:48,200 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-STSE01.1.0.0
-2025-09-20 02:01:48,214 [WARN] PackLoader:240 - Cannot read IP mode file for portGmbH.I-Cube-SoM-uGOAL.1.1.0
-2025-09-20 02:01:48,242 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOF1.3.4.3
-2025-09-20 02:01:48,277 [INFO] ThirdParty:978 - Integrity check success = true
-2025-09-20 02:01:48,278 [INFO] IntegrityCheckThread:100 - exiting critical section [integrity check]
-2025-09-20 02:01:48,278 [INFO] IntegrityCheckThread:103 - End integrity checks thread
-2025-09-20 02:03:14,349 [INFO] McuFinderGlobals:63 - Set McuFinder mode to 2 (CubeIDE integrated)
-2025-09-20 02:03:14,354 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 02:03:14,354 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 02:03:14,411 [INFO] MicroXplorer:468 - Change Database Path :
-2025-09-20 02:03:14,412 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 02:03:14,424 [WARN] ThirdParty:871 - waiting for thirdparty lock release [close project]
-2025-09-20 02:03:14,424 [INFO] ThirdParty:873 - entering critical section [close project]
-2025-09-20 02:03:14,427 [INFO] ThirdParty:883 - exiting critical section [close project]
-2025-09-20 02:03:14,434 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 02:03:14,438 [INFO] UtilMem:75 - Begin LoadConfig() Used Memory: 520691672 Bytes (655360000)
-2025-09-20 02:03:14,442 [INFO] MicroXplorer:468 - Change Database Path :
-2025-09-20 02:03:14,443 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 02:03:14,443 [INFO] OpenFileManager:355 - Change cursor
-2025-09-20 02:03:14,500 [INFO] Mcu:2029 - Initializing MCU STM32F429ZITx STM32F429ZITx STM32F429ZIT6
-2025-09-20 02:03:22,938 [INFO] Context:786 - Trying to add GPIOservice into a context which must be forbidden
-2025-09-20 02:03:25,714 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) Pin98 (VP_RIF_VS_RIF1) cannot be retrieved for this MCU
-2025-09-20 02:03:26,345 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS, mode=CMSIS_V1, owner=FREERTOS
-2025-09-20 02:03:26,345 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS2, mode=CMSIS_V2, owner=FREERTOS
-2025-09-20 02:03:26,346 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V1, owner=FREERTOS
-2025-09-20 02:03:26,346 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V2, owner=FREERTOS
-2025-09-20 02:03:26,347 [WARN] ModelIntegratedComponent:184 - Missing modes for component STMicroelectronics:FreeRTOS:0.0.1:STMicroelectronics:RTOS:FreeRTOS:Core:::10.2.0:
-2025-09-20 02:03:26,472 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,472 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,473 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,473 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,473 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,473 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,473 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,476 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,476 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,476 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,479 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,479 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,479 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,480 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,480 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,480 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,480 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,480 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,481 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,484 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,484 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,487 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,487 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,488 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,488 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,488 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,488 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,489 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,489 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,489 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,489 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,490 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,490 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,490 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,490 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:03:26,491 [WARN] ModelPack:524 - Component already loaded: STMicroelectronics:HAL Drivers:0.0.0:STMicroelectronics:Device:STMicro_Driver:XSPI:HAL::0.0.1:HAL_XSPI
-2025-09-20 02:03:27,037 [INFO] ThirdPartyModel:298 - Start build external matchings
-2025-09-20 02:03:28,578 [INFO] ThirdPartyModel:316 - End build external matchings
-2025-09-20 02:03:28,617 [INFO] RtosManager:1018 - Current active RTOS is FREERTOS [Cortex-M4NS]
-2025-09-20 02:03:28,646 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:03:28,649 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Invalid parameter (FamilyName)
-2025-09-20 02:03:28,651 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Parameter (RTCHSEDivFreq_Value) has invalid value (4000000)
-2025-09-20 02:03:29,571 [INFO] ApiDb:581 - Connected to CubeFinder SQLite database (/home/ja/.stmcufinder/plugins/mcufinder/mcu/cube-finder-db.db)
-2025-09-20 02:03:29,751 [INFO] ApiDb:668 - CubeFinder database Data Model version=2.1
-2025-09-20 02:03:29,752 [INFO] ApiDb:669 - CubeFinder database Configuration version=3.0.39
-2025-09-20 02:03:29,752 [INFO] ApiDb:670 - CubeFinder database generation date=2025-08-25 (1756130511)
-2025-09-20 02:03:29,753 [INFO] ApiDb:671 - CubeFinder database FW Pack versions=[FP-ATR-ASTRA1_V2.0.0, FP-SNS-FLIGHT1_V5.1.0, FP-SNS-MOTENV1_V5.0.0, FP-SNS-MOTENVWB1_V1.4.0, FP-SNS-SMARTAG2_V1.2.0, FP-SNS-STBOX1_V2.1.0, STM32Cube_FW_C0_V1.4.0, STM32Cube_FW_F4_V1.28.3, STM32Cube_FW_F7_V1.17.4, STM32Cube_FW_G0_V1.6.2, STM32Cube_FW_G4_V1.6.1, STM32Cube_FW_H5_V1.5.0, STM32Cube_FW_H7RS_V1.2.0, STM32Cube_FW_H7_V1.12.1, STM32Cube_FW_L0_V1.12.2, STM32Cube_FW_L4_V1.18.1, STM32Cube_FW_L5_V1.5.1, STM32Cube_FW_N6_V1.2.0, STM32Cube_FW_U0_V1.3.0, STM32Cube_FW_U3_V1.2.0, STM32Cube_FW_U5_V1.8.0, STM32Cube_FW_WB0_V1.3.0, STM32Cube_FW_WBA_V1.7.0, STM32Cube_FW_WB_V1.23.0, STM32Cube_FW_WL3_V1.2.0, STM32Cube_FW_WL_V1.3.1, X-CUBE-ALGOBUILD_V1.4.0, X-CUBE-ALS_V1.0.2, X-CUBE-AZRTOS-F4_V1.1.0, X-CUBE-AZRTOS-F7_V1.1.0, X-CUBE-AZRTOS-G0_V1.1.0, X-CUBE-AZRTOS-G4_V2.0.0, X-CUBE-AZRTOS-H7RS_V1.1.0, X-CUBE-AZRTOS-H7_V3.4.0, X-CUBE-AZRTOS-L4_V2.0.0, X-CUBE-AZRTOS-L5_V2.0.0, X-CUBE-AZRTOS-WB_V2.0.0, X-CUBE-AZRTOS-WL_V2.0.0, X-CUBE-BLE1_V7.1.0, X-CUBE-BLE2_V3.3.0, X-CUBE-BLEMGR_V4.1.0, X-CUBE-EEPRMA1_V5.2.0, X-CUBE-FREERTOS_V1.3.1, X-CUBE-GNSS1_V6.0.0, X-CUBE-MEMS1_V11.3.0, X-CUBE-NFC4_V3.0.0, X-CUBE-NFC7_V2.0.0, X-CUBE-SFXS2LP1_V4.0.0, X-CUBE-ST67W61_V1.0.0, X-CUBE-SUBG2_V5.0.0, X-CUBE-TOF1_V3.4.3]
-2025-09-20 02:03:29,999 [INFO] DbBoardsSqlite:226 - include board P-NUCLEO-WB55-NUCLEO as a kit item of type 'Nucleo-64'
-2025-09-20 02:03:30,000 [INFO] DbBoardsSqlite:226 - include board P-NUCLEO-WB55-USBDONGLE as a kit item of type 'Nucleo USB Dongle'
-2025-09-20 02:03:30,001 [INFO] DbBoardsSqlite:226 - include board STEVAL-IDP005V1 as a kit item of type 'Evaluation Board'
-2025-09-20 02:03:30,002 [INFO] DbBoardsSqlite:226 - include board STEVAL-IDP005V2 as a kit item of type 'Evaluation Board'
-2025-09-20 02:03:30,232 [INFO] ApiDb:240 - Found 880 in-development CPN: [B-G473E-ZEST1S, B-WB1M-WPAN1, B-WBA5M-WPAN, B-WL5M-SUBG1, NUCLEO-C031C6, NUCLEO-C051C8, NUCLEO-C071RB, NUCLEO-C092RC, NUCLEO-H503RB, NUCLEO-H533RE, NUCLEO-H563ZI, NUCLEO-H7S3L8, NUCLEO-N657X0-Q, NUCLEO-U031R8, NUCLEO-U083RC, NUCLEO-U385RG-Q, NUCLEO-U545RE-Q, NUCLEO-U5A5ZJ-Q, NUCLEO-WB05KZ, NUCLEO-WB07CC, NUCLEO-WB09KE, NUCLEO-WBA52CG, NUCLEO-WBA55CG, NUCLEO-WL33CC1, NUCLEO-WL33CC2, STEVAL-PROTEUS1, STEVAL-SMARTAG2, STEVAL-STWINBX1, STM320518-EVAL, STM32C0116-DK, STM32C011D6Y3TR, STM32C011D6Y6TR, STM32C011F4P3, STM32C011F4P6, STM32C011F4U3, STM32C011F4U6TR, STM32C011F6P3, STM32C011F6P6, STM32C011F6U3, STM32C011F6U6TR, STM32C011J4M3, STM32C011J4M6, STM32C011J6M3, STM32C011J6M6, STM32C0316-DK, STM32C031C4T3, STM32C031C4T6, STM32C031C4U3, STM32C031C4U6, STM32C031C6T3, STM32C031C6T6, STM32C031C6U3, STM32C031C6U6, STM32C031F4P3, STM32C031F4P6, STM32C031F6P3, STM32C031F6P6, STM32C031G4U3, STM32C031G4U6, STM32C031G6U3, STM32C031G6U6, STM32C031K4T3, STM32C031K4T6, STM32C031K4U3, STM32C031K4U6, STM32C031K6T3, STM32C031K6T6, STM32C031K6U3, STM32C031K6U6, STM32C051C6T6, STM32C051C6U6, STM32C051C8T6, STM32C051C8U6, STM32C051D8Y6TR, STM32C051F6P6, STM32C051F8P6, STM32C051G6U6, STM32C051G8U6, STM32C051K6T6, STM32C051K6U6, STM32C051K8T6, STM32C071C8T6, STM32C071C8T6N, STM32C071C8U6, STM32C071C8U6N, STM32C071CBT6, STM32C071CBT6N, STM32C071CBU6, STM32C071CBU6N, STM32C071F8P6, STM32C071F8P6N, STM32C071FBP6, STM32C071FBP6N, STM32C071FBY6TR, STM32C071G8U6, STM32C071G8U6N, STM32C071GBU6, STM32C071GBU6N, STM32C071K8T6, STM32C071K8T6N, STM32C071K8U6, STM32C071K8U6N, STM32C071KBT6, STM32C071KBT6N, STM32C071KBU6, STM32C071KBU6N, STM32C071R8T6, STM32C071R8T6N, STM32C071RBI6N, STM32C071RBT6, STM32C071RBT6N, STM32C091CBT6, STM32C091CBU6, STM32C091CCT6, STM32C091CCU6, STM32C091ECY6TR, STM32C091FBP6, STM32C091FCP6, STM32C091GBU6, STM32C091GCU6, STM32C091KBT6, STM32C091KBU6, STM32C091KCT6, STM32C091KCU6, STM32C091RBT6, STM32C091RCI6, STM32C091RCT6, STM32C092CBT6, STM32C092CBU6, STM32C092CCT6, STM32C092CCU6, STM32C092ECY6TR, STM32C092FBP6, STM32C092FCP6, STM32C092GBU6, STM32C092GCU6, STM32C092KBT6, STM32C092KBU6, STM32C092KCT6, STM32C092KCU6, STM32C092RBT6, STM32C092RCI6, STM32C092RCT6, STM32G071K8TXN, STM32G071K8UXN, STM32G081GBU6N, STM32G081KBT6N, STM32G081KBUXN, STM32G0B1CCT6N, STM32G0B1KCT6, STM32G0B1NEY6TR, STM32G0B1RCT6N, STM32G0C1CCT6, STM32G0C1CCT6N, STM32G0C1CCU6N, STM32G0C1CET6N, STM32G0C1CEU6N, STM32G0C1KCT6, STM32G0C1NEY6TR, STM32G0C1RCI6N, STM32G0C1RCT6N, STM32G0C1REI6N, STM32G0C1RET6N, STM32G0C1VCI6, STM32G0C1VEI6, STM32G411C6T3, STM32G411C6T6, STM32G411C6U3, STM32G411C6U6, STM32G411C8T3, STM32G411C8T6, STM32G411C8U3, STM32G411C8U6, STM32G411CBT3, STM32G411CBT6, STM32G411CBU3, STM32G411CBU6, STM32G411K6T3, STM32G411K6T6, STM32G411K6U3, STM32G411K6U6, STM32G411K8T3, STM32G411K8T6, STM32G411K8U3, STM32G411K8U6, STM32G411KBT3, STM32G411KBT6, STM32G411KBU3, STM32G411KBU6, STM32G411M6T3, STM32G411M6T6, STM32G411M8T3, STM32G411M8T6, STM32G411MBT3, STM32G411MBT6, STM32G411R6T3, STM32G411R6T6, STM32G411R8T3, STM32G411R8T6, STM32G411RBT3, STM32G411RBT6, STM32G414CBT3, STM32G414CBT6, STM32G414CBU3, STM32G414CBU6, STM32G414CCT3, STM32G414CCT6, STM32G414CCU3, STM32G414CCU6, STM32G414MBT3, STM32G414MBT6, STM32G414MCT3, STM32G414MCT6, STM32G414RBT3, STM32G414RBT6, STM32G414RCT3, STM32G414RCT6, STM32G414VBT3, STM32G414VBT6, STM32G414VCT3, STM32G414VCT6, STM32G431CBT3Z, STM32G431RBT3Z, STM32G471CCT6, STM32G471CCU6, STM32G471CET3, STM32G471CET6, STM32G471CEU3, STM32G471CEU6, STM32G471MCT6, STM32G471MET3, STM32G471MET6, STM32G471MEY6TR, STM32G471QCT6, STM32G471QET3, STM32G471RCT6, STM32G471RET3, STM32G471RET6, STM32G471VCH6, STM32G471VCI6, STM32G471VCT6, STM32G471VEH3, STM32G471VEH6, STM32G471VEI3, STM32G471VEI6, STM32G471VET3, STM32G471VET6, STM32G473QET3Z, STM32G473RET3Z, STM32G474CCT6, STM32G491RET3Z, STM32H503CBT6, STM32H503CBU6, STM32H503EBY6TR, STM32H503KBU6, STM32H503RBT6, STM32H523CCT6, STM32H523CCU6, STM32H523CET6, STM32H523CEU6, STM32H523HEY6TR, STM32H523RCT6, STM32H523RET6, STM32H523VCI6, STM32H523VCT6, STM32H523VEI6, STM32H523VET6, STM32H523ZCJ6, STM32H523ZCT6, STM32H523ZEJ6, STM32H523ZET6, STM32H533CET6, STM32H533CEU6, STM32H533HEY6TR, STM32H533RET6, STM32H533VEI6, STM32H533VET6, STM32H533ZEJ6, STM32H533ZET6, STM32H562AGI6, STM32H562AII6, STM32H562IGK6, STM32H562IGT6, STM32H562IIK6, STM32H562IIT6, STM32H562RGT6, STM32H562RGV6, STM32H562RIT6, STM32H562RIV6, STM32H562VGT6, STM32H562VIT6, STM32H562ZGT6, STM32H562ZIT6, STM32H563AGI6, STM32H563AII3Q, STM32H563AII6, STM32H563IGK6, STM32H563IGT6, STM32H563IIK3Q, STM32H563IIK6, STM32H563IIT3Q, STM32H563IIT6, STM32H563MIY3QTR, STM32H563RGT6, STM32H563RGV6, STM32H563RIT6, STM32H563RIV6, STM32H563VGT6, STM32H563VIT3Q, STM32H563VIT6, STM32H563ZGT6, STM32H563ZIT3Q, STM32H563ZIT6, STM32H573AII3Q, STM32H573AII6, STM32H573I-DK, STM32H573IIK3Q, STM32H573IIK6, STM32H573IIT3Q, STM32H573IIT6, STM32H573MIY3QTR, STM32H573RIT6, STM32H573RIV6, STM32H573VIT3Q, STM32H573VIT6, STM32H573ZIT3Q, STM32H573ZIT6, STM32H7R3A8I6, STM32H7R3I8K6, STM32H7R3I8T6, STM32H7R3L8H6, STM32H7R3L8H6H, STM32H7R3R8V6, STM32H7R3V8H6, STM32H7R3V8T6, STM32H7R3V8Y6TR, STM32H7R3Z8J6, STM32H7R3Z8T6, STM32H7R7A8I6, STM32H7R7I8K6, STM32H7R7I8T6, STM32H7R7L8H6, STM32H7R7L8H6H, STM32H7R7Z8J6, STM32H7S3A8I6, STM32H7S3I8K6, STM32H7S3I8T6, STM32H7S3L8H6, STM32H7S3L8H6H, STM32H7S3R8V6, STM32H7S3V8H6, STM32H7S3V8T6, STM32H7S3V8Y6TR, STM32H7S3Z8J6, STM32H7S3Z8T6, STM32H7S78-DK, STM32H7S7A8I6, STM32H7S7I8K6, STM32H7S7I8T6, STM32H7S7L8H6, STM32H7S7L8H6H, STM32H7S7Z8J6, STM32L4R5QGI6STR, STM32MP131AAE3, STM32MP131AAF3, STM32MP131AAG3, STM32MP131CAE3, STM32MP131CAF3, STM32MP131CAG3, STM32MP131DAE7, STM32MP131DAF7, STM32MP131DAG7, STM32MP131FAE7, STM32MP131FAF7, STM32MP131FAG7, STM32MP133AAE3, STM32MP133AAF3, STM32MP133AAG3, STM32MP133CAE3, STM32MP133CAF3, STM32MP133CAG3, STM32MP133DAE7, STM32MP133DAF7, STM32MP133DAG7, STM32MP133FAE7, STM32MP133FAF7, STM32MP133FAG7, STM32MP135AAE3, STM32MP135AAF3, STM32MP135AAG3, STM32MP135CAE3, STM32MP135CAF3, STM32MP135CAG3, STM32MP135DAE7, STM32MP135DAF7, STM32MP135DAG7, STM32MP135F-DK, STM32MP135FAE7, STM32MP135FAF7, STM32MP135FAF7T, STM32MP135FAF7U, STM32MP135FAG7, STM32MP211AAL3, STM32MP211AAM3, STM32MP211AAN3, STM32MP211AAO3, STM32MP211CAL3, STM32MP211CAM3, STM32MP211CAN3, STM32MP211CAO3, STM32MP211DAL3, STM32MP211DAM3, STM32MP211DAN3, STM32MP211DAO3, STM32MP211FAL3, STM32MP211FAM3, STM32MP211FAN3, STM32MP211FAO3, STM32MP213AAL3, STM32MP213AAM3, STM32MP213AAN3, STM32MP213AAO3, STM32MP213CAL3, STM32MP213CAM3, STM32MP213CAN3, STM32MP213CAO3, STM32MP213DAL3, STM32MP213DAM3, STM32MP213DAN3, STM32MP213DAO3, STM32MP213FAL3, STM32MP213FAM3, STM32MP213FAN3, STM32MP213FAO3, STM32MP215AAL3, STM32MP215AAM3, STM32MP215AAN3, STM32MP215AAO3, STM32MP215CAL3, STM32MP215CAM3, STM32MP215CAN3, STM32MP215CAO3, STM32MP215DAL3, STM32MP215DAM3, STM32MP215DAN3, STM32MP215DAO3, STM32MP215F-DK, STM32MP215FAL3, STM32MP215FAM3, STM32MP215FAN3, STM32MP215FAO3, STM32MP231AAJ3, STM32MP231AAK3, STM32MP231AAL3, STM32MP231CAJ3, STM32MP231CAK3, STM32MP231CAL3, STM32MP231DAJ3, STM32MP231DAK3, STM32MP231DAL3, STM32MP231FAJ3, STM32MP231FAK3, STM32MP231FAL3, STM32MP233AAJ3, STM32MP233AAK3, STM32MP233AAL3, STM32MP233CAJ3, STM32MP233CAK3, STM32MP233CAL3, STM32MP233DAJ3, STM32MP233DAK3, STM32MP233DAL3, STM32MP233FAJ3, STM32MP233FAK3, STM32MP233FAL3, STM32MP235AAJ3, STM32MP235AAK3, STM32MP235AAL3, STM32MP235CAJ3, STM32MP235CAK3, STM32MP235CAL3, STM32MP235DAJ3, STM32MP235DAK3, STM32MP235DAL3, STM32MP235FAJ3, STM32MP235FAK3, STM32MP235FAL3, STM32MP251AAI3, STM32MP251AAK3, STM32MP251AAL3, STM32MP251CAI3, STM32MP251CAK3, STM32MP251CAL3, STM32MP251DAI3, STM32MP251DAK3, STM32MP251DAL3, STM32MP251FAI3, STM32MP251FAK3, STM32MP251FAL3, STM32MP253AAI3, STM32MP253AAK3, STM32MP253AAL3, STM32MP253CAI3, STM32MP253CAK3, STM32MP253CAL3, STM32MP253DAI3, STM32MP253DAK3, STM32MP253DAL3, STM32MP253FAI3, STM32MP253FAK3, STM32MP253FAL3, STM32MP255AAI3, STM32MP255AAK3, STM32MP255AAL3, STM32MP255CAI3, STM32MP255CAK3, STM32MP255CAL3, STM32MP255DAI3, STM32MP255DAK3, STM32MP255DAL3, STM32MP255FAI3, STM32MP255FAK3, STM32MP255FAL3, STM32MP257AAI3, STM32MP257AAK3, STM32MP257AAL3, STM32MP257CAI3, STM32MP257CAK3, STM32MP257CAL3, STM32MP257DAI3, STM32MP257DAK3, STM32MP257DAL3, STM32MP257F-DK, STM32MP257F-EV1, STM32MP257FAI3, STM32MP257FAK3, STM32MP257FAL3, STM32N645A0H3Q, STM32N645B0H3Q, STM32N645I0H3Q, STM32N645L0H3Q, STM32N645X0H3Q, STM32N645Z0H3Q, STM32N647A0H3Q, STM32N647B0H3Q, STM32N647I0H3Q, STM32N647L0H3Q, STM32N647X0H3Q, STM32N647Z0H3Q, STM32N655A0H3Q, STM32N655B0H3Q, STM32N655I0H3Q, STM32N655L0H3Q, STM32N655X0H3Q, STM32N655Z0H3Q, STM32N6570-DK, STM32N657A0H3Q, STM32N657B0H3Q, STM32N657I0H3Q, STM32N657L0H3Q, STM32N657X0H3Q, STM32N657Z0H3Q, STM32U031C6T6, STM32U031C6U6, STM32U031C8T6, STM32U031C8U6, STM32U031F4P6, STM32U031F6P6, STM32U031F8P6, STM32U031G6Y6TR, STM32U031G8Y6TR, STM32U031K4U6, STM32U031K6U6, STM32U031K8U6, STM32U031R6I6, STM32U031R6T6, STM32U031R8I6, STM32U031R8T6, STM32U073C8T6, STM32U073C8U6, STM32U073CBT6, STM32U073CBU6, STM32U073CCT6, STM32U073CCU6, STM32U073H8Y6TR, STM32U073HBY6TR, STM32U073HCY6TR, STM32U073K8U6, STM32U073KBU6, STM32U073KCU6, STM32U073M8I6, STM32U073M8T6, STM32U073MBI6, STM32U073MBT6, STM32U073MCI6, STM32U073MCT6, STM32U073R8I6, STM32U073R8T6, STM32U073RBI6, STM32U073RBT6, STM32U073RCI6, STM32U073RCT6, STM32U083C-DK, STM32U083CCT6, STM32U083CCU6, STM32U083HCY6TR, STM32U083KCU6, STM32U083MCI6, STM32U083MCT6, STM32U083RCI6, STM32U083RCT6, STM32U375CET6, STM32U375CET6Q, STM32U375CEU6, STM32U375CEU6Q, STM32U375CEY6QTR, STM32U375CGT6, STM32U375CGT6Q, STM32U375CGU6, STM32U375CGU6Q, STM32U375CGY6QTR, STM32U375KEU6, STM32U375KGU6, STM32U375REI6, STM32U375REI6Q, STM32U375RET6, STM32U375RET6Q, STM32U375REY6GTR, STM32U375REY6QTR, STM32U375RGI6, STM32U375RGI6Q, STM32U375RGT6, STM32U375RGT6Q, STM32U375RGY6GTR, STM32U375RGY6QTR, STM32U375VEI6, STM32U375VEI6Q, STM32U375VET6, STM32U375VET6Q, STM32U375VGI6, STM32U375VGI6Q, STM32U375VGT6, STM32U375VGT6Q, STM32U385CGT6, STM32U385CGT6Q, STM32U385CGU6, STM32U385CGU6Q, STM32U385CGY6QTR, STM32U385KGU6, STM32U385RGI6, STM32U385RGI6Q, STM32U385RGT6, STM32U385RGT6Q, STM32U385RGY6GTR, STM32U385RGY6QTR, STM32U385VGI6, STM32U385VGI6Q, STM32U385VGT6, STM32U385VGT6Q, STM32U535CBT6, STM32U535CBT6Q, STM32U535CBU6, STM32U535CBU6Q, STM32U535CCT6, STM32U535CCT6Q, STM32U535CCU6, STM32U535CCU6Q, STM32U535CET6, STM32U535CET6Q, STM32U535CEU6, STM32U535CEU6Q, STM32U535JEY6QTR, STM32U535NCY6QTR, STM32U535NEY6QTR, STM32U535RBI6, STM32U535RBI6Q, STM32U535RBT6, STM32U535RBT6Q, STM32U535RCI6, STM32U535RCI6Q, STM32U535RCT6, STM32U535RCT6Q, STM32U535REI6, STM32U535REI6Q, STM32U535RET6, STM32U535RET6Q, STM32U535VCI6, STM32U535VCI6Q, STM32U535VCT6, STM32U535VCT6Q, STM32U535VEI6, STM32U535VEI6Q, STM32U535VET6, STM32U535VET6Q, STM32U545CET6, STM32U545CET6Q, STM32U545CEU6, STM32U545CEU6Q, STM32U545JEY6QTR, STM32U545NEY6QTR, STM32U545REI6, STM32U545REI6Q, STM32U545RET6, STM32U545RET6Q, STM32U545VEI6, STM32U545VEI6Q, STM32U545VET6, STM32U545VET6Q, STM32U595AIH6, STM32U595AIH6Q, STM32U595AJH6, STM32U595AJH6Q, STM32U595QII6, STM32U595QII6Q, STM32U595QJI6, STM32U595QJI6Q, STM32U595RIT6, STM32U595RIT6Q, STM32U595RJT6, STM32U595RJT6Q, STM32U595VIT6, STM32U595VIT6Q, STM32U595VJT6, STM32U595VJT6Q, STM32U595ZIT6, STM32U595ZIT6Q, STM32U595ZIY6QTR, STM32U595ZJT6, STM32U595ZJT6Q, STM32U595ZJY6QTR, STM32U599BJY6QTR, STM32U599NIH6Q, STM32U599NJH6Q, STM32U599VIT6Q, STM32U599VJT6, STM32U599VJT6Q, STM32U599ZIT6Q, STM32U599ZIY6QTR, STM32U599ZJT6Q, STM32U599ZJY6QTR, STM32U5A5AJH6, STM32U5A5AJH6Q, STM32U5A5QII3Q , STM32U5A5QJI6, STM32U5A5QJI6Q, STM32U5A5RJT6, STM32U5A5RJT6Q, STM32U5A5VJT6, STM32U5A5VJT6Q, STM32U5A5ZJT6, STM32U5A5ZJT6Q, STM32U5A5ZJY6QTR, STM32U5A9BJY6QTR, STM32U5A9J-DK, STM32U5A9NJH6Q, STM32U5A9VJT6Q, STM32U5A9ZJT6Q, STM32U5A9ZJY6QTR, STM32U5F7VIT6, STM32U5F7VIT6Q, STM32U5F7VJT6, STM32U5F7VJT6Q, STM32U5F9BJY6QTR, STM32U5F9NJH6Q, STM32U5F9VIT6Q, STM32U5F9VJT6Q, STM32U5F9ZIJ6QTR, STM32U5F9ZIT6Q, STM32U5F9ZJJ6QTR, STM32U5F9ZJT6Q, STM32U5G7VJT6, STM32U5G7VJT6Q, STM32U5G9BJY6QTR, STM32U5G9J-DK1, STM32U5G9J-DK2, STM32U5G9NJH6Q, STM32U5G9VJT6Q, STM32U5G9ZJJ6QTR, STM32U5G9ZJT6Q, STM32WB05KZV6TR, STM32WB05KZV7TR, STM32WB05TZF6TR, STM32WB05TZF7TR, STM32WB06CCF6TR, STM32WB06CCF7TR, STM32WB06CCV6TR, STM32WB06CCV7TR, STM32WB06KCV6TR, STM32WB06KCV7TR, STM32WB07CCF6TR, STM32WB07CCF7TR, STM32WB07CCV6TR, STM32WB07CCV7TR, STM32WB07KCV6TR, STM32WB07KCV7TR, STM32WB09KEV6TR, STM32WB09KEV7TR, STM32WB09TEF6TR, STM32WB09TEF7TR, STM32WB1MMCH6, STM32WBA50KGU6, STM32WBA50KGU6TR, STM32WBA52CEU6, STM32WBA52CEU6TR, STM32WBA52CEU7, STM32WBA52CEU7TR, STM32WBA52CGU6, STM32WBA52CGU6TR, STM32WBA52CGU6U, STM32WBA52CGU7, STM32WBA52CGU7TR, STM32WBA52KEU6, STM32WBA52KEU6TR, STM32WBA52KGU6, STM32WBA52KGU6TR, STM32WBA54CEU6, STM32WBA54CEU6TR, STM32WBA54CEU7, STM32WBA54CEU7TR, STM32WBA54CGU6, STM32WBA54CGU6TR, STM32WBA54CGU7, STM32WBA54CGU7TR, STM32WBA54KEU6, STM32WBA54KEU6TR, STM32WBA54KEU7, STM32WBA54KEU7TR, STM32WBA54KGU6, STM32WBA54KGU6TR, STM32WBA54KGU7, STM32WBA54KGU7TR, STM32WBA55CEU6, STM32WBA55CEU6TR, STM32WBA55CEU7, STM32WBA55CEU7TR, STM32WBA55CGU6, STM32WBA55CGU6TR, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CGU7TR, STM32WBA55G-DK1, STM32WBA55HEF6, STM32WBA55HEF7, STM32WBA55HGF6, STM32WBA55HGF7, STM32WBA55UEI6, STM32WBA55UEI6TR, STM32WBA55UEI7, STM32WBA55UEI7TR, STM32WBA55UGI6, STM32WBA55UGI6TR, STM32WBA55UGI7, STM32WBA55UGI7TR, STM32WBA5MMGH6TR, STM32WBA62MGF6, STM32WBA62MIF6, STM32WBA65MGF7, STM32WBA65MIF6, STM32WBA65MIF7, STM32WL30K8V6, STM32WL30KBV6, STM32WL31C8V6, STM32WL31CBV6, STM32WL31K8V6, STM32WL31KBV6, STM32WL33C8V6, STM32WL33C8V6X, STM32WL33CBV6, STM32WL33CBV6X, STM32WL33CCV6, STM32WL33CCV6A, STM32WL33CCV6X, STM32WL33K8V7, STM32WL33K8V7X, STM32WL33KBV7 , STM32WL33KBV7X, STM32WL33KCV7, STM32WL33KCV7X, STM32WL5MOCH6, STM32WL5MOCH6TR]
-2025-09-20 02:03:30,602 [INFO] BoardInfo:889 - No configuration file found for board P-NUCLEO-WB55
-2025-09-20 02:03:30,604 [INFO] DbBoards:161 - Kit is not supported: P-NUCLEO-WB55
-2025-09-20 02:03:30,614 [INFO] BoardInfo:889 - No configuration file found for board STEVAL-BFA001V1B
-2025-09-20 02:03:30,615 [INFO] DbBoards:161 - Kit is not supported: STEVAL-BFA001V1B
-2025-09-20 02:03:30,619 [INFO] BoardInfo:889 - No configuration file found for board STEVAL-BFA001V2B
-2025-09-20 02:03:30,620 [INFO] DbBoards:161 - Kit is not supported: STEVAL-BFA001V2B
-2025-09-20 02:03:31,030 [INFO] DbBoards:168 - Found 212 boards, 209 are supported
-2025-09-20 02:03:31,030 [INFO] DbBoards:169 - Found 212 boards, 43 of them is supported for Bsp
-2025-09-20 02:03:31,039 [INFO] ApiDb:668 - CubeFinder database Data Model version=2.1
-2025-09-20 02:03:31,039 [INFO] ApiDb:669 - CubeFinder database Configuration version=3.0.39
-2025-09-20 02:03:31,040 [INFO] ApiDb:670 - CubeFinder database generation date=2025-08-25 (1756130511)
-2025-09-20 02:03:31,040 [INFO] ApiDb:671 - CubeFinder database FW Pack versions=[FP-ATR-ASTRA1_V2.0.0, FP-SNS-FLIGHT1_V5.1.0, FP-SNS-MOTENV1_V5.0.0, FP-SNS-MOTENVWB1_V1.4.0, FP-SNS-SMARTAG2_V1.2.0, FP-SNS-STBOX1_V2.1.0, STM32Cube_FW_C0_V1.4.0, STM32Cube_FW_F4_V1.28.3, STM32Cube_FW_F7_V1.17.4, STM32Cube_FW_G0_V1.6.2, STM32Cube_FW_G4_V1.6.1, STM32Cube_FW_H5_V1.5.0, STM32Cube_FW_H7RS_V1.2.0, STM32Cube_FW_H7_V1.12.1, STM32Cube_FW_L0_V1.12.2, STM32Cube_FW_L4_V1.18.1, STM32Cube_FW_L5_V1.5.1, STM32Cube_FW_N6_V1.2.0, STM32Cube_FW_U0_V1.3.0, STM32Cube_FW_U3_V1.2.0, STM32Cube_FW_U5_V1.8.0, STM32Cube_FW_WB0_V1.3.0, STM32Cube_FW_WBA_V1.7.0, STM32Cube_FW_WB_V1.23.0, STM32Cube_FW_WL3_V1.2.0, STM32Cube_FW_WL_V1.3.1, X-CUBE-ALGOBUILD_V1.4.0, X-CUBE-ALS_V1.0.2, X-CUBE-AZRTOS-F4_V1.1.0, X-CUBE-AZRTOS-F7_V1.1.0, X-CUBE-AZRTOS-G0_V1.1.0, X-CUBE-AZRTOS-G4_V2.0.0, X-CUBE-AZRTOS-H7RS_V1.1.0, X-CUBE-AZRTOS-H7_V3.4.0, X-CUBE-AZRTOS-L4_V2.0.0, X-CUBE-AZRTOS-L5_V2.0.0, X-CUBE-AZRTOS-WB_V2.0.0, X-CUBE-AZRTOS-WL_V2.0.0, X-CUBE-BLE1_V7.1.0, X-CUBE-BLE2_V3.3.0, X-CUBE-BLEMGR_V4.1.0, X-CUBE-EEPRMA1_V5.2.0, X-CUBE-FREERTOS_V1.3.1, X-CUBE-GNSS1_V6.0.0, X-CUBE-MEMS1_V11.3.0, X-CUBE-NFC4_V3.0.0, X-CUBE-NFC7_V2.0.0, X-CUBE-SFXS2LP1_V4.0.0, X-CUBE-ST67W61_V1.0.0, X-CUBE-SUBG2_V5.0.0, X-CUBE-TOF1_V3.4.3]
-2025-09-20 02:03:38,146 [INFO] ApiDb:240 - Found 880 in-development CPN: [B-G473E-ZEST1S, B-WB1M-WPAN1, B-WBA5M-WPAN, B-WL5M-SUBG1, NUCLEO-C031C6, NUCLEO-C051C8, NUCLEO-C071RB, NUCLEO-C092RC, NUCLEO-H503RB, NUCLEO-H533RE, NUCLEO-H563ZI, NUCLEO-H7S3L8, NUCLEO-N657X0-Q, NUCLEO-U031R8, NUCLEO-U083RC, NUCLEO-U385RG-Q, NUCLEO-U545RE-Q, NUCLEO-U5A5ZJ-Q, NUCLEO-WB05KZ, NUCLEO-WB07CC, NUCLEO-WB09KE, NUCLEO-WBA52CG, NUCLEO-WBA55CG, NUCLEO-WL33CC1, NUCLEO-WL33CC2, STEVAL-PROTEUS1, STEVAL-SMARTAG2, STEVAL-STWINBX1, STM320518-EVAL, STM32C0116-DK, STM32C011D6Y3TR, STM32C011D6Y6TR, STM32C011F4P3, STM32C011F4P6, STM32C011F4U3, STM32C011F4U6TR, STM32C011F6P3, STM32C011F6P6, STM32C011F6U3, STM32C011F6U6TR, STM32C011J4M3, STM32C011J4M6, STM32C011J6M3, STM32C011J6M6, STM32C0316-DK, STM32C031C4T3, STM32C031C4T6, STM32C031C4U3, STM32C031C4U6, STM32C031C6T3, STM32C031C6T6, STM32C031C6U3, STM32C031C6U6, STM32C031F4P3, STM32C031F4P6, STM32C031F6P3, STM32C031F6P6, STM32C031G4U3, STM32C031G4U6, STM32C031G6U3, STM32C031G6U6, STM32C031K4T3, STM32C031K4T6, STM32C031K4U3, STM32C031K4U6, STM32C031K6T3, STM32C031K6T6, STM32C031K6U3, STM32C031K6U6, STM32C051C6T6, STM32C051C6U6, STM32C051C8T6, STM32C051C8U6, STM32C051D8Y6TR, STM32C051F6P6, STM32C051F8P6, STM32C051G6U6, STM32C051G8U6, STM32C051K6T6, STM32C051K6U6, STM32C051K8T6, STM32C071C8T6, STM32C071C8T6N, STM32C071C8U6, STM32C071C8U6N, STM32C071CBT6, STM32C071CBT6N, STM32C071CBU6, STM32C071CBU6N, STM32C071F8P6, STM32C071F8P6N, STM32C071FBP6, STM32C071FBP6N, STM32C071FBY6TR, STM32C071G8U6, STM32C071G8U6N, STM32C071GBU6, STM32C071GBU6N, STM32C071K8T6, STM32C071K8T6N, STM32C071K8U6, STM32C071K8U6N, STM32C071KBT6, STM32C071KBT6N, STM32C071KBU6, STM32C071KBU6N, STM32C071R8T6, STM32C071R8T6N, STM32C071RBI6N, STM32C071RBT6, STM32C071RBT6N, STM32C091CBT6, STM32C091CBU6, STM32C091CCT6, STM32C091CCU6, STM32C091ECY6TR, STM32C091FBP6, STM32C091FCP6, STM32C091GBU6, STM32C091GCU6, STM32C091KBT6, STM32C091KBU6, STM32C091KCT6, STM32C091KCU6, STM32C091RBT6, STM32C091RCI6, STM32C091RCT6, STM32C092CBT6, STM32C092CBU6, STM32C092CCT6, STM32C092CCU6, STM32C092ECY6TR, STM32C092FBP6, STM32C092FCP6, STM32C092GBU6, STM32C092GCU6, STM32C092KBT6, STM32C092KBU6, STM32C092KCT6, STM32C092KCU6, STM32C092RBT6, STM32C092RCI6, STM32C092RCT6, STM32G071K8TXN, STM32G071K8UXN, STM32G081GBU6N, STM32G081KBT6N, STM32G081KBUXN, STM32G0B1CCT6N, STM32G0B1KCT6, STM32G0B1NEY6TR, STM32G0B1RCT6N, STM32G0C1CCT6, STM32G0C1CCT6N, STM32G0C1CCU6N, STM32G0C1CET6N, STM32G0C1CEU6N, STM32G0C1KCT6, STM32G0C1NEY6TR, STM32G0C1RCI6N, STM32G0C1RCT6N, STM32G0C1REI6N, STM32G0C1RET6N, STM32G0C1VCI6, STM32G0C1VEI6, STM32G411C6T3, STM32G411C6T6, STM32G411C6U3, STM32G411C6U6, STM32G411C8T3, STM32G411C8T6, STM32G411C8U3, STM32G411C8U6, STM32G411CBT3, STM32G411CBT6, STM32G411CBU3, STM32G411CBU6, STM32G411K6T3, STM32G411K6T6, STM32G411K6U3, STM32G411K6U6, STM32G411K8T3, STM32G411K8T6, STM32G411K8U3, STM32G411K8U6, STM32G411KBT3, STM32G411KBT6, STM32G411KBU3, STM32G411KBU6, STM32G411M6T3, STM32G411M6T6, STM32G411M8T3, STM32G411M8T6, STM32G411MBT3, STM32G411MBT6, STM32G411R6T3, STM32G411R6T6, STM32G411R8T3, STM32G411R8T6, STM32G411RBT3, STM32G411RBT6, STM32G414CBT3, STM32G414CBT6, STM32G414CBU3, STM32G414CBU6, STM32G414CCT3, STM32G414CCT6, STM32G414CCU3, STM32G414CCU6, STM32G414MBT3, STM32G414MBT6, STM32G414MCT3, STM32G414MCT6, STM32G414RBT3, STM32G414RBT6, STM32G414RCT3, STM32G414RCT6, STM32G414VBT3, STM32G414VBT6, STM32G414VCT3, STM32G414VCT6, STM32G431CBT3Z, STM32G431RBT3Z, STM32G471CCT6, STM32G471CCU6, STM32G471CET3, STM32G471CET6, STM32G471CEU3, STM32G471CEU6, STM32G471MCT6, STM32G471MET3, STM32G471MET6, STM32G471MEY6TR, STM32G471QCT6, STM32G471QET3, STM32G471RCT6, STM32G471RET3, STM32G471RET6, STM32G471VCH6, STM32G471VCI6, STM32G471VCT6, STM32G471VEH3, STM32G471VEH6, STM32G471VEI3, STM32G471VEI6, STM32G471VET3, STM32G471VET6, STM32G473QET3Z, STM32G473RET3Z, STM32G474CCT6, STM32G491RET3Z, STM32H503CBT6, STM32H503CBU6, STM32H503EBY6TR, STM32H503KBU6, STM32H503RBT6, STM32H523CCT6, STM32H523CCU6, STM32H523CET6, STM32H523CEU6, STM32H523HEY6TR, STM32H523RCT6, STM32H523RET6, STM32H523VCI6, STM32H523VCT6, STM32H523VEI6, STM32H523VET6, STM32H523ZCJ6, STM32H523ZCT6, STM32H523ZEJ6, STM32H523ZET6, STM32H533CET6, STM32H533CEU6, STM32H533HEY6TR, STM32H533RET6, STM32H533VEI6, STM32H533VET6, STM32H533ZEJ6, STM32H533ZET6, STM32H562AGI6, STM32H562AII6, STM32H562IGK6, STM32H562IGT6, STM32H562IIK6, STM32H562IIT6, STM32H562RGT6, STM32H562RGV6, STM32H562RIT6, STM32H562RIV6, STM32H562VGT6, STM32H562VIT6, STM32H562ZGT6, STM32H562ZIT6, STM32H563AGI6, STM32H563AII3Q, STM32H563AII6, STM32H563IGK6, STM32H563IGT6, STM32H563IIK3Q, STM32H563IIK6, STM32H563IIT3Q, STM32H563IIT6, STM32H563MIY3QTR, STM32H563RGT6, STM32H563RGV6, STM32H563RIT6, STM32H563RIV6, STM32H563VGT6, STM32H563VIT3Q, STM32H563VIT6, STM32H563ZGT6, STM32H563ZIT3Q, STM32H563ZIT6, STM32H573AII3Q, STM32H573AII6, STM32H573I-DK, STM32H573IIK3Q, STM32H573IIK6, STM32H573IIT3Q, STM32H573IIT6, STM32H573MIY3QTR, STM32H573RIT6, STM32H573RIV6, STM32H573VIT3Q, STM32H573VIT6, STM32H573ZIT3Q, STM32H573ZIT6, STM32H7R3A8I6, STM32H7R3I8K6, STM32H7R3I8T6, STM32H7R3L8H6, STM32H7R3L8H6H, STM32H7R3R8V6, STM32H7R3V8H6, STM32H7R3V8T6, STM32H7R3V8Y6TR, STM32H7R3Z8J6, STM32H7R3Z8T6, STM32H7R7A8I6, STM32H7R7I8K6, STM32H7R7I8T6, STM32H7R7L8H6, STM32H7R7L8H6H, STM32H7R7Z8J6, STM32H7S3A8I6, STM32H7S3I8K6, STM32H7S3I8T6, STM32H7S3L8H6, STM32H7S3L8H6H, STM32H7S3R8V6, STM32H7S3V8H6, STM32H7S3V8T6, STM32H7S3V8Y6TR, STM32H7S3Z8J6, STM32H7S3Z8T6, STM32H7S78-DK, STM32H7S7A8I6, STM32H7S7I8K6, STM32H7S7I8T6, STM32H7S7L8H6, STM32H7S7L8H6H, STM32H7S7Z8J6, STM32L4R5QGI6STR, STM32MP131AAE3, STM32MP131AAF3, STM32MP131AAG3, STM32MP131CAE3, STM32MP131CAF3, STM32MP131CAG3, STM32MP131DAE7, STM32MP131DAF7, STM32MP131DAG7, STM32MP131FAE7, STM32MP131FAF7, STM32MP131FAG7, STM32MP133AAE3, STM32MP133AAF3, STM32MP133AAG3, STM32MP133CAE3, STM32MP133CAF3, STM32MP133CAG3, STM32MP133DAE7, STM32MP133DAF7, STM32MP133DAG7, STM32MP133FAE7, STM32MP133FAF7, STM32MP133FAG7, STM32MP135AAE3, STM32MP135AAF3, STM32MP135AAG3, STM32MP135CAE3, STM32MP135CAF3, STM32MP135CAG3, STM32MP135DAE7, STM32MP135DAF7, STM32MP135DAG7, STM32MP135F-DK, STM32MP135FAE7, STM32MP135FAF7, STM32MP135FAF7T, STM32MP135FAF7U, STM32MP135FAG7, STM32MP211AAL3, STM32MP211AAM3, STM32MP211AAN3, STM32MP211AAO3, STM32MP211CAL3, STM32MP211CAM3, STM32MP211CAN3, STM32MP211CAO3, STM32MP211DAL3, STM32MP211DAM3, STM32MP211DAN3, STM32MP211DAO3, STM32MP211FAL3, STM32MP211FAM3, STM32MP211FAN3, STM32MP211FAO3, STM32MP213AAL3, STM32MP213AAM3, STM32MP213AAN3, STM32MP213AAO3, STM32MP213CAL3, STM32MP213CAM3, STM32MP213CAN3, STM32MP213CAO3, STM32MP213DAL3, STM32MP213DAM3, STM32MP213DAN3, STM32MP213DAO3, STM32MP213FAL3, STM32MP213FAM3, STM32MP213FAN3, STM32MP213FAO3, STM32MP215AAL3, STM32MP215AAM3, STM32MP215AAN3, STM32MP215AAO3, STM32MP215CAL3, STM32MP215CAM3, STM32MP215CAN3, STM32MP215CAO3, STM32MP215DAL3, STM32MP215DAM3, STM32MP215DAN3, STM32MP215DAO3, STM32MP215F-DK, STM32MP215FAL3, STM32MP215FAM3, STM32MP215FAN3, STM32MP215FAO3, STM32MP231AAJ3, STM32MP231AAK3, STM32MP231AAL3, STM32MP231CAJ3, STM32MP231CAK3, STM32MP231CAL3, STM32MP231DAJ3, STM32MP231DAK3, STM32MP231DAL3, STM32MP231FAJ3, STM32MP231FAK3, STM32MP231FAL3, STM32MP233AAJ3, STM32MP233AAK3, STM32MP233AAL3, STM32MP233CAJ3, STM32MP233CAK3, STM32MP233CAL3, STM32MP233DAJ3, STM32MP233DAK3, STM32MP233DAL3, STM32MP233FAJ3, STM32MP233FAK3, STM32MP233FAL3, STM32MP235AAJ3, STM32MP235AAK3, STM32MP235AAL3, STM32MP235CAJ3, STM32MP235CAK3, STM32MP235CAL3, STM32MP235DAJ3, STM32MP235DAK3, STM32MP235DAL3, STM32MP235FAJ3, STM32MP235FAK3, STM32MP235FAL3, STM32MP251AAI3, STM32MP251AAK3, STM32MP251AAL3, STM32MP251CAI3, STM32MP251CAK3, STM32MP251CAL3, STM32MP251DAI3, STM32MP251DAK3, STM32MP251DAL3, STM32MP251FAI3, STM32MP251FAK3, STM32MP251FAL3, STM32MP253AAI3, STM32MP253AAK3, STM32MP253AAL3, STM32MP253CAI3, STM32MP253CAK3, STM32MP253CAL3, STM32MP253DAI3, STM32MP253DAK3, STM32MP253DAL3, STM32MP253FAI3, STM32MP253FAK3, STM32MP253FAL3, STM32MP255AAI3, STM32MP255AAK3, STM32MP255AAL3, STM32MP255CAI3, STM32MP255CAK3, STM32MP255CAL3, STM32MP255DAI3, STM32MP255DAK3, STM32MP255DAL3, STM32MP255FAI3, STM32MP255FAK3, STM32MP255FAL3, STM32MP257AAI3, STM32MP257AAK3, STM32MP257AAL3, STM32MP257CAI3, STM32MP257CAK3, STM32MP257CAL3, STM32MP257DAI3, STM32MP257DAK3, STM32MP257DAL3, STM32MP257F-DK, STM32MP257F-EV1, STM32MP257FAI3, STM32MP257FAK3, STM32MP257FAL3, STM32N645A0H3Q, STM32N645B0H3Q, STM32N645I0H3Q, STM32N645L0H3Q, STM32N645X0H3Q, STM32N645Z0H3Q, STM32N647A0H3Q, STM32N647B0H3Q, STM32N647I0H3Q, STM32N647L0H3Q, STM32N647X0H3Q, STM32N647Z0H3Q, STM32N655A0H3Q, STM32N655B0H3Q, STM32N655I0H3Q, STM32N655L0H3Q, STM32N655X0H3Q, STM32N655Z0H3Q, STM32N6570-DK, STM32N657A0H3Q, STM32N657B0H3Q, STM32N657I0H3Q, STM32N657L0H3Q, STM32N657X0H3Q, STM32N657Z0H3Q, STM32U031C6T6, STM32U031C6U6, STM32U031C8T6, STM32U031C8U6, STM32U031F4P6, STM32U031F6P6, STM32U031F8P6, STM32U031G6Y6TR, STM32U031G8Y6TR, STM32U031K4U6, STM32U031K6U6, STM32U031K8U6, STM32U031R6I6, STM32U031R6T6, STM32U031R8I6, STM32U031R8T6, STM32U073C8T6, STM32U073C8U6, STM32U073CBT6, STM32U073CBU6, STM32U073CCT6, STM32U073CCU6, STM32U073H8Y6TR, STM32U073HBY6TR, STM32U073HCY6TR, STM32U073K8U6, STM32U073KBU6, STM32U073KCU6, STM32U073M8I6, STM32U073M8T6, STM32U073MBI6, STM32U073MBT6, STM32U073MCI6, STM32U073MCT6, STM32U073R8I6, STM32U073R8T6, STM32U073RBI6, STM32U073RBT6, STM32U073RCI6, STM32U073RCT6, STM32U083C-DK, STM32U083CCT6, STM32U083CCU6, STM32U083HCY6TR, STM32U083KCU6, STM32U083MCI6, STM32U083MCT6, STM32U083RCI6, STM32U083RCT6, STM32U375CET6, STM32U375CET6Q, STM32U375CEU6, STM32U375CEU6Q, STM32U375CEY6QTR, STM32U375CGT6, STM32U375CGT6Q, STM32U375CGU6, STM32U375CGU6Q, STM32U375CGY6QTR, STM32U375KEU6, STM32U375KGU6, STM32U375REI6, STM32U375REI6Q, STM32U375RET6, STM32U375RET6Q, STM32U375REY6GTR, STM32U375REY6QTR, STM32U375RGI6, STM32U375RGI6Q, STM32U375RGT6, STM32U375RGT6Q, STM32U375RGY6GTR, STM32U375RGY6QTR, STM32U375VEI6, STM32U375VEI6Q, STM32U375VET6, STM32U375VET6Q, STM32U375VGI6, STM32U375VGI6Q, STM32U375VGT6, STM32U375VGT6Q, STM32U385CGT6, STM32U385CGT6Q, STM32U385CGU6, STM32U385CGU6Q, STM32U385CGY6QTR, STM32U385KGU6, STM32U385RGI6, STM32U385RGI6Q, STM32U385RGT6, STM32U385RGT6Q, STM32U385RGY6GTR, STM32U385RGY6QTR, STM32U385VGI6, STM32U385VGI6Q, STM32U385VGT6, STM32U385VGT6Q, STM32U535CBT6, STM32U535CBT6Q, STM32U535CBU6, STM32U535CBU6Q, STM32U535CCT6, STM32U535CCT6Q, STM32U535CCU6, STM32U535CCU6Q, STM32U535CET6, STM32U535CET6Q, STM32U535CEU6, STM32U535CEU6Q, STM32U535JEY6QTR, STM32U535NCY6QTR, STM32U535NEY6QTR, STM32U535RBI6, STM32U535RBI6Q, STM32U535RBT6, STM32U535RBT6Q, STM32U535RCI6, STM32U535RCI6Q, STM32U535RCT6, STM32U535RCT6Q, STM32U535REI6, STM32U535REI6Q, STM32U535RET6, STM32U535RET6Q, STM32U535VCI6, STM32U535VCI6Q, STM32U535VCT6, STM32U535VCT6Q, STM32U535VEI6, STM32U535VEI6Q, STM32U535VET6, STM32U535VET6Q, STM32U545CET6, STM32U545CET6Q, STM32U545CEU6, STM32U545CEU6Q, STM32U545JEY6QTR, STM32U545NEY6QTR, STM32U545REI6, STM32U545REI6Q, STM32U545RET6, STM32U545RET6Q, STM32U545VEI6, STM32U545VEI6Q, STM32U545VET6, STM32U545VET6Q, STM32U595AIH6, STM32U595AIH6Q, STM32U595AJH6, STM32U595AJH6Q, STM32U595QII6, STM32U595QII6Q, STM32U595QJI6, STM32U595QJI6Q, STM32U595RIT6, STM32U595RIT6Q, STM32U595RJT6, STM32U595RJT6Q, STM32U595VIT6, STM32U595VIT6Q, STM32U595VJT6, STM32U595VJT6Q, STM32U595ZIT6, STM32U595ZIT6Q, STM32U595ZIY6QTR, STM32U595ZJT6, STM32U595ZJT6Q, STM32U595ZJY6QTR, STM32U599BJY6QTR, STM32U599NIH6Q, STM32U599NJH6Q, STM32U599VIT6Q, STM32U599VJT6, STM32U599VJT6Q, STM32U599ZIT6Q, STM32U599ZIY6QTR, STM32U599ZJT6Q, STM32U599ZJY6QTR, STM32U5A5AJH6, STM32U5A5AJH6Q, STM32U5A5QII3Q , STM32U5A5QJI6, STM32U5A5QJI6Q, STM32U5A5RJT6, STM32U5A5RJT6Q, STM32U5A5VJT6, STM32U5A5VJT6Q, STM32U5A5ZJT6, STM32U5A5ZJT6Q, STM32U5A5ZJY6QTR, STM32U5A9BJY6QTR, STM32U5A9J-DK, STM32U5A9NJH6Q, STM32U5A9VJT6Q, STM32U5A9ZJT6Q, STM32U5A9ZJY6QTR, STM32U5F7VIT6, STM32U5F7VIT6Q, STM32U5F7VJT6, STM32U5F7VJT6Q, STM32U5F9BJY6QTR, STM32U5F9NJH6Q, STM32U5F9VIT6Q, STM32U5F9VJT6Q, STM32U5F9ZIJ6QTR, STM32U5F9ZIT6Q, STM32U5F9ZJJ6QTR, STM32U5F9ZJT6Q, STM32U5G7VJT6, STM32U5G7VJT6Q, STM32U5G9BJY6QTR, STM32U5G9J-DK1, STM32U5G9J-DK2, STM32U5G9NJH6Q, STM32U5G9VJT6Q, STM32U5G9ZJJ6QTR, STM32U5G9ZJT6Q, STM32WB05KZV6TR, STM32WB05KZV7TR, STM32WB05TZF6TR, STM32WB05TZF7TR, STM32WB06CCF6TR, STM32WB06CCF7TR, STM32WB06CCV6TR, STM32WB06CCV7TR, STM32WB06KCV6TR, STM32WB06KCV7TR, STM32WB07CCF6TR, STM32WB07CCF7TR, STM32WB07CCV6TR, STM32WB07CCV7TR, STM32WB07KCV6TR, STM32WB07KCV7TR, STM32WB09KEV6TR, STM32WB09KEV7TR, STM32WB09TEF6TR, STM32WB09TEF7TR, STM32WB1MMCH6, STM32WBA50KGU6, STM32WBA50KGU6TR, STM32WBA52CEU6, STM32WBA52CEU6TR, STM32WBA52CEU7, STM32WBA52CEU7TR, STM32WBA52CGU6, STM32WBA52CGU6TR, STM32WBA52CGU6U, STM32WBA52CGU7, STM32WBA52CGU7TR, STM32WBA52KEU6, STM32WBA52KEU6TR, STM32WBA52KGU6, STM32WBA52KGU6TR, STM32WBA54CEU6, STM32WBA54CEU6TR, STM32WBA54CEU7, STM32WBA54CEU7TR, STM32WBA54CGU6, STM32WBA54CGU6TR, STM32WBA54CGU7, STM32WBA54CGU7TR, STM32WBA54KEU6, STM32WBA54KEU6TR, STM32WBA54KEU7, STM32WBA54KEU7TR, STM32WBA54KGU6, STM32WBA54KGU6TR, STM32WBA54KGU7, STM32WBA54KGU7TR, STM32WBA55CEU6, STM32WBA55CEU6TR, STM32WBA55CEU7, STM32WBA55CEU7TR, STM32WBA55CGU6, STM32WBA55CGU6TR, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CGU7TR, STM32WBA55G-DK1, STM32WBA55HEF6, STM32WBA55HEF7, STM32WBA55HGF6, STM32WBA55HGF7, STM32WBA55UEI6, STM32WBA55UEI6TR, STM32WBA55UEI7, STM32WBA55UEI7TR, STM32WBA55UGI6, STM32WBA55UGI6TR, STM32WBA55UGI7, STM32WBA55UGI7TR, STM32WBA5MMGH6TR, STM32WBA62MGF6, STM32WBA62MIF6, STM32WBA65MGF7, STM32WBA65MIF6, STM32WBA65MIF7, STM32WL30K8V6, STM32WL30KBV6, STM32WL31C8V6, STM32WL31CBV6, STM32WL31K8V6, STM32WL31KBV6, STM32WL33C8V6, STM32WL33C8V6X, STM32WL33CBV6, STM32WL33CBV6X, STM32WL33CCV6, STM32WL33CCV6A, STM32WL33CCV6X, STM32WL33K8V7, STM32WL33K8V7X, STM32WL33KBV7 , STM32WL33KBV7X, STM32WL33KCV7, STM32WL33KCV7X, STM32WL5MOCH6, STM32WL5MOCH6TR]
-2025-09-20 02:03:38,160 [INFO] DbMcus:218 - Found 4801 MCUs, 4801 are supported
-2025-09-20 02:03:38,161 [INFO] ApiDb:423 - Load user favorites file /home/ja/.stm32cubeide/favorites.mcus.txt: 0 item(s)
-2025-09-20 02:03:38,162 [INFO] ApiDb:427 - User favorites MCUs=[]
-2025-09-20 02:03:38,162 [INFO] DbMcus:224 - Set 0 / 0 favorites MCUs
-2025-09-20 02:03:39,907 [INFO] ApiDb:414 - User favorites file not found: /home/ja/.stm32cubeide/favorites.boards.txt
-2025-09-20 02:03:39,908 [INFO] DbBoards:198 - Set 0 / 0 favorites Boards
-2025-09-20 02:03:39,963 [INFO] UtilMem:75 - End LoadConfig() Used Memory: 681168496 Bytes (912261120)
-2025-09-20 02:03:40,343 [WARN] ThirdParty:833 - waiting for thirdparty lock release [change project]
-2025-09-20 02:03:40,344 [INFO] ThirdParty:835 - entering critical section [change project]
-2025-09-20 02:03:40,344 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-PM33A1 1.0.0
-2025-09-20 02:03:40,344 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USBPD 4.1
-2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC9 1.0.0
-2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 2.0.0
-2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENVWB1 1.4.0
-2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F4 1.1.0
-2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics LIBJPEG 8.0.0
-2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-ASTRA1 2.0.2
-2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSL 5.8.2
-2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE1 7.1.0
-2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Avnet-IotConnect X-CUBE-IoTC-DA16k-PMOD 1.0.0
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SMBUS 2.1.0
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfMQTT 1.19.2
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 3.0.0
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ISPU 2.1.0
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-EEPRMA1 5.2.0
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLEMGR 4.1.0
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WB 2.0.0
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST60 1.0.0
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-GNSS1 7.0.1
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC12 1.0.0
-2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F7 1.1.0
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L5 2.0.0
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOUCHGFX 4.25.0
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 2.0.0
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC6 3.1.0
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :quantropi X-CUBE-qispace-sdk-base 2.1.0
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FreeRTOS 0.0.1
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G0 1.1.0
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SAFEA1 1.2.2
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC4 3.0.0
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SUBG2 5.0.0
-2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7RS 1.1.0
-2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics STM32_WPAN 1.0.0
-2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :EmbeddedOffice I-CUBE-FS-RTOS 1.0.1
-2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.0.3
-2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :WES I-CUBE-Cesium 1.4.0
-2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Cesanta I-CUBE-Mongoose 7.13.0
-2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 1.0.0
-2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Infineon AIROC-Wi-Fi-Bluetooth-STM32 1.7.1
-2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G4 2.0.0
-2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-WB05N 2.0.0
-2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.1.0
-2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.3.0
-2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfTPM 3.8.0
-2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7 3.4.0
-2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DISPLAY 3.0.0
-2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSH 1.4.20
-2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC7 2.0.0
-2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TCPP 4.2.0
-2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :RealThread X-CUBE-RT-Thread_Nano 4.1.1
-2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-SIGFOX1 3.2.0
-2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC10 1.0.0
-2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-FREERTOS 1.3.1
-2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics HAL Drivers 0.0.0
-2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.16.2
-2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-IPS 3.1.0
-2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALS 1.0.2
-2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :emotas I-CUBE-CANOPEN 1.3.0
-2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.14.1
-2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :ITTIA_DB I-CUBE-ITTIADB 8.9.0
-2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-STSE01 1.0.0
-2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :portGmbH I-Cube-SoM-uGOAL 1.1.0
-2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST67W61 1.0.0
-2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STBOX1 2.1.0
-2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AI 10.2.0
-2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STAIOTCFT 1.0.0
-2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 1.0.0
-2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-SMARTAG2 1.2.0
-2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-FLIGHT1 5.1.0
-2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WL 2.0.0
-2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :SEGGER I-CUBE-embOS 1.3.1
-2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALGOBUILD 1.4.0
-2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DPower 1.3.0
-2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-MEMS1 11.3.0
-2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENV1 5.0.0
-2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 1.0.0
-2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L4 2.0.0
-2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 0.0.2
-2025-09-20 02:03:40,354 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.1.2
-2025-09-20 02:03:40,354 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SFXS2LP1 4.0.0
-2025-09-20 02:03:40,354 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE2 3.3.0
-2025-09-20 02:03:40,354 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOF1 3.4.3
-2025-09-20 02:03:40,354 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.2.0
-2025-09-20 02:03:40,354 [INFO] ThirdParty:841 - exiting critical section [change project]
-2025-09-20 02:03:41,895 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 02:03:41,900 [INFO] PinOutPanel:1589 - setPackage(STM32F429ZITx,LQFP144)
-2025-09-20 02:03:43,685 [INFO] UtilMem:75 - Before build in PCC Used Memory: 660889184 Bytes (931135488)
-2025-09-20 02:03:46,004 [INFO] UtilMem:75 - After build in PCC Used Memory: 884374320 Bytes (931135488)
-2025-09-20 02:03:46,293 [INFO] ApiDbMcu:532 - Load IP Config File for FREERTOS
-2025-09-20 02:03:46,376 [INFO] ApiDbMcu:532 - Load IP Config File for USB_HOST
-2025-09-20 02:03:46,668 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,671 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,672 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,672 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,672 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,675 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,676 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,676 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,677 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,677 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,678 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,678 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,679 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,679 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,680 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,680 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,681 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,681 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,682 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,682 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,683 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,684 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,685 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,686 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,687 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,687 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,688 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,689 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,690 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,691 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,754 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,763 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,763 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,764 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,764 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,765 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,766 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,767 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,768 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,769 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,769 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,769 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,770 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,770 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,770 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,771 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,771 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,771 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,772 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,773 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,773 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,775 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,778 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,785 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,787 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,790 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,792 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,794 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,801 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,808 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,814 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,817 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,820 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,822 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,824 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,826 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:03:46,856 [INFO] ApiDbMcu:532 - Load IP Config File for PDM2PCM
-2025-09-20 02:03:47,093 [WARN] FreeRTOS:1023 - Null or empty value: should not occur! (nothing added to the table)
-2025-09-20 02:03:48,720 [INFO] CADModel:165 - CPN selected for project levelSTM32F429ZIT6
-2025-09-20 02:03:48,720 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 02:03:48,733 [INFO] RtosManager:728 - Active RTOS found at IOC load: FREERTOS [Cortex-M4NS]
-2025-09-20 02:03:48,834 [INFO] OpenFileManager:386 - Restore cursor
-2025-09-20 02:03:49,932 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:04:53,421 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:04:53,688 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:04:53,879 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:05:07,215 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:05:07,460 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:05:07,670 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:05:24,373 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:05:24,615 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:05:24,812 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:06:43,157 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:07:00,737 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:07:03,844 [INFO] CADModel:198 - CPN selected (Project mode): STM32F429ZIT6
-2025-09-20 02:07:03,844 [INFO] CADModel:200 - Internet connection configuration mode: 1
-2025-09-20 02:07:03,844 [INFO] CADModel:203 - rpn retrievedSTM32F429ZI
-2025-09-20 02:07:03,852 [INFO] WebAppUi:336 - Instantiating new browser for Project
-2025-09-20 02:07:04,060 [INFO] WebAppUi:1235 - Register for checkConnection events
-2025-09-20 02:07:04,061 [INFO] WebAppUi:1270 - Apply proxy settings
-2025-09-20 02:07:04,062 [INFO] WebAppUi:1308 - Chromium requires no authentication
-2025-09-20 02:07:04,063 [INFO] WebAppUi:1294 - Direct internet connection detected
-2025-09-20 02:07:04,075 [INFO] WebAppUi:1166 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient/index.html
-2025-09-20 02:07:04,099 [INFO] WebAppUi:938 - Path where api_config.json is located /home/ja/.stmcufinder/plugins/mcufinder//mcu/api_config.json
-2025-09-20 02:07:04,100 [INFO] WebAppUi:939 - Setting api config in window object
-2025-09-20 02:07:04,163 [INFO] WebAppUi:947 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
-2025-09-20 02:07:04,163 [INFO] WebAppUi:948 - Setting consent info in window object
-2025-09-20 02:07:05,379 [INFO] WebAppUi:843 - Allow Downloads
-2025-09-20 02:07:05,381 [INFO] WebAppUi:336 - Instantiating new browser for Finder
-2025-09-20 02:07:05,604 [INFO] WebAppUi:1100 - Web application message: [UlApiManager component] Connected to Ultra Librarian SSO
-2025-09-20 02:07:05,604 [INFO] WebAppUi:1100 - Web application message: [UlApiManager component] Connected to Ultra Librarian API
-2025-09-20 02:07:05,642 [INFO] WebAppUi:1235 - Register for checkConnection events
-2025-09-20 02:07:05,642 [INFO] WebAppUi:1270 - Apply proxy settings
-2025-09-20 02:07:05,643 [INFO] WebAppUi:1308 - Chromium requires no authentication
-2025-09-20 02:07:05,643 [INFO] WebAppUi:1294 - Direct internet connection detected
-2025-09-20 02:07:05,659 [INFO] WebAppUi:1166 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient/index.html
-2025-09-20 02:07:05,685 [INFO] WebAppUi:938 - Path where api_config.json is located /home/ja/.stmcufinder/plugins/mcufinder//mcu/api_config.json
-2025-09-20 02:07:05,685 [INFO] WebAppUi:939 - Setting api config in window object
-2025-09-20 02:07:05,741 [INFO] WebAppUi:947 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
-2025-09-20 02:07:05,741 [INFO] WebAppUi:948 - Setting consent info in window object
-2025-09-20 02:07:06,876 [INFO] WebAppUi:843 - Allow Downloads
-2025-09-20 02:07:06,877 [INFO] WebAppUi:664 - RPN selected STM32F429ZI
-2025-09-20 02:07:06,877 [INFO] WebAppUi:665 - RefName selected STM32F429ZITx
-2025-09-20 02:07:06,878 [INFO] WebAppUi:666 - CPN selected STM32F429ZIT6
-2025-09-20 02:07:06,881 [INFO] WebAppUi:829 - Which Bigleton in use 2 and which CPN is about STM32F429ZIT6
-2025-09-20 02:07:06,891 [INFO] WebAppUi:703 - Have injected Javascript into web application
-2025-09-20 02:07:06,892 [INFO] WebAppUiContainer:153 - Web application run mode: Project CPN: STM32F429ZIT6
-2025-09-20 02:07:09,274 [INFO] WebAppUi:938 - Path where api_config.json is located /home/ja/.stmcufinder/plugins/mcufinder//mcu/api_config.json
-2025-09-20 02:07:09,275 [INFO] WebAppUi:939 - Setting api config in window object
-2025-09-20 02:07:09,326 [INFO] WebAppUi:947 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
-2025-09-20 02:07:09,326 [INFO] WebAppUi:948 - Setting consent info in window object
-2025-09-20 02:07:09,619 [INFO] WebAppUi:1100 - Web application message: THREE.WebGLRenderer 101
-2025-09-20 02:07:13,023 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
-2025-09-20 02:07:13,023 [INFO] WebAppUi:306 - Updating consent from JSON file
-2025-09-20 02:07:13,030 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
-2025-09-20 02:07:13,030 [INFO] WebAppUi:306 - Updating consent from JSON file
-2025-09-20 02:07:13,040 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
-2025-09-20 02:07:13,041 [INFO] WebAppUi:306 - Updating consent from JSON file
-2025-09-20 02:07:13,714 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
-2025-09-20 02:07:13,714 [INFO] WebAppUi:306 - Updating consent from JSON file
-2025-09-20 02:07:13,720 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
-2025-09-20 02:07:13,721 [INFO] WebAppUi:306 - Updating consent from JSON file
-2025-09-20 02:07:13,726 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
-2025-09-20 02:07:13,726 [INFO] WebAppUi:306 - Updating consent from JSON file
-2025-09-20 02:07:15,502 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 02:07:15,502 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 02:07:16,705 [INFO] MicroXplorer:468 - Change Database Path :
-2025-09-20 02:07:16,705 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 02:07:16,731 [ERROR] ProjectManagerView:395 -
-java.lang.NullPointerException: Cannot invoke "javax.swing.JTextField.getText()" because the return value of "java.util.List.get(int)" is null
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab$9.caretUpdate(ProjectChoiceTab.java:2706) ~[filemanager.jar:?]
- at javax.swing.text.JTextComponent.fireCaretUpdate(JTextComponent.java:408) ~[?:?]
- at javax.swing.text.JTextComponent$MutableCaretEvent.fire(JTextComponent.java:4484) ~[?:?]
- at javax.swing.text.JTextComponent$MutableCaretEvent.stateChanged(JTextComponent.java:4506) ~[?:?]
- at javax.swing.text.DefaultCaret.fireStateChanged(DefaultCaret.java:857) ~[?:?]
- at javax.swing.text.DefaultCaret.changeCaretPosition(DefaultCaret.java:1343) ~[?:?]
- at javax.swing.text.DefaultCaret.handleSetDot(DefaultCaret.java:1242) ~[?:?]
- at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1223) ~[?:?]
- at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1819) ~[?:?]
- at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:227) ~[?:?]
- at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:781) ~[?:?]
- at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:740) ~[?:?]
- at javax.swing.text.PlainDocument.insertString(PlainDocument.java:131) ~[?:?]
- at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:699) ~[?:?]
- at javax.swing.text.JTextComponent.setText(JTextComponent.java:1725) ~[?:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.createHeapStackFields(ProjectChoiceTab.java:993) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.buildLinkSettingsPanel(ProjectChoiceTab.java:3813) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.defineWindowsFields(ProjectChoiceTab.java:1987) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.updateSettings(ProjectChoiceTab.java:558) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectSettingsPanel.UpdateDialog(ProjectSettingsPanel.java:247) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.ProjectManagerView.propertyChange(ProjectManagerView.java:392) ~[filemanager.jar:?]
- at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343) ~[?:?]
- at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:335) ~[?:?]
- at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268) ~[?:?]
- at com.st.microxplorer.util.MXPropertyChangeSupport.firePropertyChange(MXPropertyChangeSupport.java:54) ~[STM32CubeMX.jar:?]
- at com.st.microxplorer.mxsystem.MxSystem.closeConfig(MxSystem.java:899) ~[STM32CubeMX.jar:?]
- at com.st.microxplorer.maingui.MainPanel.closeConfig(MainPanel.java:792) ~[STM32CubeMX.jar:?]
- at com.st.microxplorer.plugins.filemanager.engine.OpenFileManager.loadConfigurationFile(OpenFileManager.java:288) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:364) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:342) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.filemanager.FileManagerView.getSpecificTask(FileManagerView.java:264) ~[filemanager.jar:?]
- at com.st.stm32cube.common.mx.editor.CubeMxEditor.getMxTabbedPaneInstance(CubeMxEditor.java:1198) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.editor.CubeMxEditor$12$1.createSwingComponent(CubeMxEditor.java:1068) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite.doComponentCreation(EmbeddedSwingComposite.java:492) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite$4.run(EmbeddedSwingComposite.java:291) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.oss.core.awtswtbridge.AwtEnvironment$2.run(AwtEnvironment.java:166) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
- at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) ~[?:?]
- at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[?:?]
- at java.awt.EventQueue$4.run(EventQueue.java:720) ~[?:?]
- at java.awt.EventQueue$4.run(EventQueue.java:714) ~[?:?]
- at java.security.AccessController.doPrivileged(AccessController.java:400) ~[?:?]
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) ~[?:?]
- at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[?:?]
- at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[?:?]
- at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[?:?]
- at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) ~[?:?]
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) ~[?:?]
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[?:?]
- at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ~[?:?]
-2025-09-20 02:07:16,742 [WARN] ThirdParty:871 - waiting for thirdparty lock release [close project]
-2025-09-20 02:07:16,743 [INFO] ThirdParty:873 - entering critical section [close project]
-2025-09-20 02:07:16,743 [INFO] ThirdParty:883 - exiting critical section [close project]
-2025-09-20 02:07:16,747 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 02:07:16,779 [WARN] IpParametersView:155 - Warning: This peripheral hasn't parameters
-2025-09-20 02:07:16,806 [WARN] MainPanel:289 -
Warning: This peripheral has no parameters to be configured
-2025-09-20 02:07:16,824 [INFO] UtilMem:75 - Begin LoadConfig() Used Memory: 937710736 Bytes (1073741824)
-2025-09-20 02:07:16,826 [INFO] MicroXplorer:468 - Change Database Path :
-2025-09-20 02:07:16,826 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 02:07:16,826 [INFO] OpenFileManager:355 - Change cursor
-2025-09-20 02:07:16,844 [INFO] Mcu:2029 - Initializing MCU STM32F429ZITx STM32F429ZITx STM32F429ZIT6
-2025-09-20 02:07:20,064 [INFO] Context:786 - Trying to add GPIOservice into a context which must be forbidden
-2025-09-20 02:07:20,970 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) Pin98 (VP_RIF_VS_RIF1) cannot be retrieved for this MCU
-2025-09-20 02:07:21,028 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS, mode=CMSIS_V1, owner=FREERTOS
-2025-09-20 02:07:21,029 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS2, mode=CMSIS_V2, owner=FREERTOS
-2025-09-20 02:07:21,029 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V1, owner=FREERTOS
-2025-09-20 02:07:21,029 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V2, owner=FREERTOS
-2025-09-20 02:07:21,029 [WARN] ModelIntegratedComponent:184 - Missing modes for component STMicroelectronics:FreeRTOS:0.0.1:STMicroelectronics:RTOS:FreeRTOS:Core:::10.2.0:
-2025-09-20 02:07:21,044 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,045 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,049 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:07:21,049 [WARN] ModelPack:524 - Component already loaded: STMicroelectronics:HAL Drivers:0.0.0:STMicroelectronics:Device:STMicro_Driver:XSPI:HAL::0.0.1:HAL_XSPI
-2025-09-20 02:07:21,238 [INFO] ThirdPartyModel:298 - Start build external matchings
-2025-09-20 02:07:22,430 [INFO] ThirdPartyModel:316 - End build external matchings
-2025-09-20 02:07:22,458 [INFO] RtosManager:1018 - Current active RTOS is FREERTOS [Cortex-M4NS]
-2025-09-20 02:07:22,473 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:07:22,474 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Invalid parameter (FamilyName)
-2025-09-20 02:07:22,475 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Parameter (RTCHSEDivFreq_Value) has invalid value (4000000)
-2025-09-20 02:07:22,781 [INFO] UtilMem:75 - End LoadConfig() Used Memory: 898155800 Bytes (1073741824)
-2025-09-20 02:07:22,800 [WARN] ThirdParty:833 - waiting for thirdparty lock release [change project]
-2025-09-20 02:07:22,800 [INFO] ThirdParty:835 - entering critical section [change project]
-2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-PM33A1 1.0.0
-2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USBPD 4.1
-2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC9 1.0.0
-2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 2.0.0
-2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENVWB1 1.4.0
-2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F4 1.1.0
-2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics LIBJPEG 8.0.0
-2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-ASTRA1 2.0.2
-2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSL 5.8.2
-2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE1 7.1.0
-2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Avnet-IotConnect X-CUBE-IoTC-DA16k-PMOD 1.0.0
-2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SMBUS 2.1.0
-2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfMQTT 1.19.2
-2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 3.0.0
-2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ISPU 2.1.0
-2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-EEPRMA1 5.2.0
-2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLEMGR 4.1.0
-2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WB 2.0.0
-2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST60 1.0.0
-2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-GNSS1 7.0.1
-2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC12 1.0.0
-2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F7 1.1.0
-2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L5 2.0.0
-2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOUCHGFX 4.25.0
-2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 2.0.0
-2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC6 3.1.0
-2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :quantropi X-CUBE-qispace-sdk-base 2.1.0
-2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FreeRTOS 0.0.1
-2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G0 1.1.0
-2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SAFEA1 1.2.2
-2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC4 3.0.0
-2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SUBG2 5.0.0
-2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7RS 1.1.0
-2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics STM32_WPAN 1.0.0
-2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :EmbeddedOffice I-CUBE-FS-RTOS 1.0.1
-2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.0.3
-2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :WES I-CUBE-Cesium 1.4.0
-2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Cesanta I-CUBE-Mongoose 7.13.0
-2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 1.0.0
-2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Infineon AIROC-Wi-Fi-Bluetooth-STM32 1.7.1
-2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G4 2.0.0
-2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-WB05N 2.0.0
-2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.1.0
-2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.3.0
-2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfTPM 3.8.0
-2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7 3.4.0
-2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DISPLAY 3.0.0
-2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSH 1.4.20
-2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC7 2.0.0
-2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TCPP 4.2.0
-2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :RealThread X-CUBE-RT-Thread_Nano 4.1.1
-2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-SIGFOX1 3.2.0
-2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC10 1.0.0
-2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-FREERTOS 1.3.1
-2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics HAL Drivers 0.0.0
-2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.16.2
-2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-IPS 3.1.0
-2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALS 1.0.2
-2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :emotas I-CUBE-CANOPEN 1.3.0
-2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.14.1
-2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :ITTIA_DB I-CUBE-ITTIADB 8.9.0
-2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-STSE01 1.0.0
-2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :portGmbH I-Cube-SoM-uGOAL 1.1.0
-2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST67W61 1.0.0
-2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STBOX1 2.1.0
-2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AI 10.2.0
-2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STAIOTCFT 1.0.0
-2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 1.0.0
-2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-SMARTAG2 1.2.0
-2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-FLIGHT1 5.1.0
-2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WL 2.0.0
-2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :SEGGER I-CUBE-embOS 1.3.1
-2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALGOBUILD 1.4.0
-2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DPower 1.3.0
-2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-MEMS1 11.3.0
-2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENV1 5.0.0
-2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 1.0.0
-2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L4 2.0.0
-2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 0.0.2
-2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.1.2
-2025-09-20 02:07:22,811 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SFXS2LP1 4.0.0
-2025-09-20 02:07:22,811 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE2 3.3.0
-2025-09-20 02:07:22,811 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOF1 3.4.3
-2025-09-20 02:07:22,811 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.2.0
-2025-09-20 02:07:22,811 [INFO] ThirdParty:841 - exiting critical section [change project]
-2025-09-20 02:07:23,397 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 02:07:23,398 [INFO] PinOutPanel:1589 - setPackage(STM32F429ZITx,LQFP144)
-2025-09-20 02:07:23,916 [INFO] UtilMem:75 - Before build in PCC Used Memory: 644194520 Bytes (1073741824)
-2025-09-20 02:07:24,500 [INFO] UtilMem:75 - After build in PCC Used Memory: 692955352 Bytes (1073741824)
-2025-09-20 02:07:24,513 [INFO] ApiDbMcu:532 - Load IP Config File for FREERTOS
-2025-09-20 02:07:24,528 [INFO] ApiDbMcu:532 - Load IP Config File for USB_HOST
-2025-09-20 02:07:24,615 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,615 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,615 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,615 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,616 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,616 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,617 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,617 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,617 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,618 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,618 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,619 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,619 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,620 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,620 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,621 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,621 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,621 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,622 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,623 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,624 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,624 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,625 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,626 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,627 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,628 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,628 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,629 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,630 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,631 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,631 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,632 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,633 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,633 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,633 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,634 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,634 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,635 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,635 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,636 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,636 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,636 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,636 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,637 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,637 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,637 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,637 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,638 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,638 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,638 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,638 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,639 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,639 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,640 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,641 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,642 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,643 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,644 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,645 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,646 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,647 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,649 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,650 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,652 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,654 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,656 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:07:24,663 [INFO] ApiDbMcu:532 - Load IP Config File for PDM2PCM
-2025-09-20 02:07:24,701 [WARN] FreeRTOS:1023 - Null or empty value: should not occur! (nothing added to the table)
-2025-09-20 02:07:24,921 [INFO] CADModel:165 - CPN selected for project levelSTM32F429ZIT6
-2025-09-20 02:07:24,921 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 02:07:24,927 [INFO] RtosManager:728 - Active RTOS found at IOC load: FREERTOS [Cortex-M4NS]
-2025-09-20 02:07:25,036 [INFO] OpenFileManager:386 - Restore cursor
-2025-09-20 02:07:25,566 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:08:35,466 [INFO] WebAppUi:1100 - Web application message: WebGL: CONTEXT_LOST_WEBGL: loseContext: context lost
-2025-09-20 02:08:35,470 [INFO] WebAppUi:1100 - Web application message: THREE.WebGLRenderer: Context Lost.
-2025-09-20 02:09:08,705 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:09:09,025 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:09:09,282 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:09:21,020 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:09:21,201 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:09:21,348 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:09:31,550 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:09:31,837 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:09:32,083 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:17:31,086 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:18:24,367 [INFO] UtilMem:75 - End SaveConfig() Used Memory: 444424424 Bytes (940572672)
-2025-09-20 02:18:27,273 [INFO] UtilMem:75 - End SaveConfig() Used Memory: 467920792 Bytes (940572672)
-2025-09-20 02:18:33,675 [INFO] UtilMem:75 - End SaveConfig() Used Memory: 520875928 Bytes (940572672)
-2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: USB_OTG_HS
-2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: SPI
-2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: FREERTOS
-2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: TIM1_8
-2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: LTDC
-2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: SYS
-2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: RCC
-2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: CRC
-2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: I2C
-2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: NVIC
-2025-09-20 02:18:52,677 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: USB_HOST
-2025-09-20 02:18:52,677 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: DMA2D
-2025-09-20 02:18:52,677 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: USART
-2025-09-20 02:18:52,677 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: FMC
-2025-09-20 02:18:52,678 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: GPIO
-2025-09-20 02:18:52,679 [INFO] CodeGenerator:892 - code generatio: config db path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db/
-2025-09-20 02:18:52,697 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:18:53,170 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/license.tmp_save
-2025-09-20 02:18:53,831 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/license.tmp
-2025-09-20 02:18:54,250 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/gpio.tmp_save
-2025-09-20 02:18:54,610 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/gpio.tmp
-2025-09-20 02:18:55,142 [WARN] IPConfigManager:3238 - Warning: the RefConfig PWREx_EnableUSBVoltageDetector is not available in your config.xml file
-2025-09-20 02:18:55,151 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_vars.tmp_save
-2025-09-20 02:18:55,324 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_vars.tmp
-2025-09-20 02:18:55,329 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_inc.tmp_save
-2025-09-20 02:18:55,483 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_inc.tmp
-2025-09-20 02:18:55,488 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_HalInit.tmp_save
-2025-09-20 02:18:55,690 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_HalInit.tmp
-2025-09-20 02:18:55,693 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_Msp.tmp_save
-2025-09-20 02:18:55,917 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_Msp.tmp
-2025-09-20 02:18:58,853 [INFO] Middleware:1452 - No code input for Bsp Dependency
-2025-09-20 02:18:58,862 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp_save
-2025-09-20 02:18:58,999 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp
-2025-09-20 02:18:59,003 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp_save
-2025-09-20 02:18:59,150 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp
-2025-09-20 02:18:59,156 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp_save
-2025-09-20 02:18:59,304 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp
-2025-09-20 02:18:59,307 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp_save
-2025-09-20 02:18:59,459 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp
-2025-09-20 02:18:59,463 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp_save
-2025-09-20 02:18:59,629 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp
-2025-09-20 02:18:59,635 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp_save
-2025-09-20 02:18:59,768 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp
-2025-09-20 02:18:59,773 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp_save
-2025-09-20 02:18:59,903 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp
-2025-09-20 02:18:59,946 [INFO] Middleware:1452 - No code input for Bsp Dependency
-2025-09-20 02:18:59,951 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp_save
-2025-09-20 02:19:00,070 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp
-2025-09-20 02:19:00,072 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp_save
-2025-09-20 02:19:00,183 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp
-2025-09-20 02:19:00,187 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp_save
-2025-09-20 02:19:00,294 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp
-2025-09-20 02:19:00,297 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp_save
-2025-09-20 02:19:00,444 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp
-2025-09-20 02:19:00,446 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp_save
-2025-09-20 02:19:00,549 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp
-2025-09-20 02:19:00,553 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp_save
-2025-09-20 02:19:00,663 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp
-2025-09-20 02:19:00,664 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp_save
-2025-09-20 02:19:00,763 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp
-2025-09-20 02:19:00,768 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/FreeRTOSConfig.h_save
-2025-09-20 02:19:00,903 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/FreeRTOSConfig.h
-2025-09-20 02:19:00,906 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/freertos.c_save
-2025-09-20 02:19:01,027 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/freertos.c
-2025-09-20 02:19:01,038 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp_save
-2025-09-20 02:19:01,161 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp
-2025-09-20 02:19:01,164 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp_save
-2025-09-20 02:19:01,275 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp
-2025-09-20 02:19:01,278 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp_save
-2025-09-20 02:19:01,486 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp
-2025-09-20 02:19:01,531 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.c_save
-2025-09-20 02:19:01,754 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.c
-2025-09-20 02:19:01,758 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.h_save
-2025-09-20 02:19:01,894 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.h
-2025-09-20 02:19:01,896 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.h_save
-2025-09-20 02:19:02,050 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.h
-2025-09-20 02:19:02,053 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.c_save
-2025-09-20 02:19:02,196 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.c
-2025-09-20 02:19:02,199 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.c_save
-2025-09-20 02:19:02,341 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.c
-2025-09-20 02:19:02,343 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.h_save
-2025-09-20 02:19:02,470 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.h
-2025-09-20 02:19:02,490 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_it.c_save
-2025-09-20 02:19:02,641 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_it.c
-2025-09-20 02:19:02,643 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_it.h_save
-2025-09-20 02:19:02,810 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_it.h
-2025-09-20 02:19:02,815 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp_save
-2025-09-20 02:19:02,947 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp
-2025-09-20 02:19:02,949 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp_save
-2025-09-20 02:19:03,042 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp
-2025-09-20 02:19:03,043 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp_save
-2025-09-20 02:19:03,178 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp
-2025-09-20 02:19:03,203 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_msp.c_save
-2025-09-20 02:19:03,413 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_msp.c
-2025-09-20 02:19:03,416 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/system.tmp_save
-2025-09-20 02:19:03,558 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/system.tmp
-2025-09-20 02:19:03,579 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_timebase_tim.c_save
-2025-09-20 02:19:03,711 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_timebase_tim.c
-2025-09-20 02:19:03,720 [INFO] CodeEngine:321 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_hal_conf.h_save
-2025-09-20 02:19:03,876 [INFO] CodeEngine:345 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_hal_conf.h
-2025-09-20 02:19:03,954 [INFO] ApiDbMcu:532 - Load IP Config File for CRC
-2025-09-20 02:19:03,959 [INFO] ApiDbMcu:532 - Load IP Config File for DMA2D
-2025-09-20 02:19:03,977 [INFO] ApiDbMcu:532 - Load IP Config File for FMC
-2025-09-20 02:19:03,984 [INFO] ApiDbMcu:532 - Load IP Config File for I2C3
-2025-09-20 02:19:03,990 [INFO] ApiDbMcu:532 - Load IP Config File for LTDC
-2025-09-20 02:19:03,995 [INFO] ApiDbMcu:532 - Load IP Config File for SPI5
-2025-09-20 02:19:04,025 [INFO] ApiDbMcu:532 - Load IP Config File for TIM1
-2025-09-20 02:19:04,033 [INFO] ApiDbMcu:532 - Load IP Config File for USART1
-2025-09-20 02:19:04,043 [INFO] ApiDbMcu:532 - Load IP Config File for RCC
-2025-09-20 02:19:04,057 [WARN] IPConfigManager:3811 - IP not found : TIM
-2025-09-20 02:19:04,058 [WARN] CodeGenerator:4259 - IP not found : null
-2025-09-20 02:19:04,073 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/main.h_save
-2025-09-20 02:19:04,311 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/main.h
-2025-09-20 02:19:04,314 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/main.c_save
-2025-09-20 02:19:04,708 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/main.c
-2025-09-20 02:19:05,315 [INFO] ProjectBuilder:3606 - Time for Copy HAL[1] : 108mS.
-2025-09-20 02:19:05,334 [INFO] ProjectBuilder:5216 - Project Generator version: 4.7.0-B52
-2025-09-20 02:19:05,518 [INFO] ConfigFileManager:1595 - The Die is : DIE419
-2025-09-20 02:19:05,525 [INFO] ApiDbMcu:532 - Load IP Config File for FATFS
-2025-09-20 02:19:05,529 [INFO] ApiDbMcu:532 - Load IP Config File for LIBJPEG
-2025-09-20 02:19:05,554 [INFO] ApiDbMcu:532 - Load IP Config File for LWIP
-2025-09-20 02:19:05,564 [INFO] ApiDbMcu:532 - Load IP Config File for MBEDTLS
-2025-09-20 02:19:05,577 [INFO] ApiDbMcu:532 - Load IP Config File for USB_DEVICE
-2025-09-20 02:19:09,852 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT]
-2025-09-20 02:19:11,507 [INFO] ProjectBuilder:5496 - Time for Generating toolchain IDE Files: 6172mS.
-2025-09-20 02:19:11,508 [INFO] ProjectBuilder:3463 - Time for Copy CMSIS : 0mS.
-2025-09-20 02:19:11,511 [INFO] ProjectBuilder:3463 - Time for Copy CMSIS : 0mS.
-2025-09-20 02:22:38,224 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 02:22:38,225 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 02:22:38,280 [INFO] MicroXplorer:468 - Change Database Path :
-2025-09-20 02:22:38,280 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 02:22:38,300 [ERROR] ProjectManagerView:395 -
-java.lang.NullPointerException: Cannot invoke "javax.swing.JTextField.getText()" because the return value of "java.util.List.get(int)" is null
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab$9.caretUpdate(ProjectChoiceTab.java:2706) ~[filemanager.jar:?]
- at javax.swing.text.JTextComponent.fireCaretUpdate(JTextComponent.java:408) ~[?:?]
- at javax.swing.text.JTextComponent$MutableCaretEvent.fire(JTextComponent.java:4484) ~[?:?]
- at javax.swing.text.JTextComponent$MutableCaretEvent.stateChanged(JTextComponent.java:4506) ~[?:?]
- at javax.swing.text.DefaultCaret.fireStateChanged(DefaultCaret.java:857) ~[?:?]
- at javax.swing.text.DefaultCaret.changeCaretPosition(DefaultCaret.java:1343) ~[?:?]
- at javax.swing.text.DefaultCaret.handleSetDot(DefaultCaret.java:1242) ~[?:?]
- at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1223) ~[?:?]
- at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1819) ~[?:?]
- at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:227) ~[?:?]
- at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:781) ~[?:?]
- at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:740) ~[?:?]
- at javax.swing.text.PlainDocument.insertString(PlainDocument.java:131) ~[?:?]
- at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:699) ~[?:?]
- at javax.swing.text.JTextComponent.setText(JTextComponent.java:1725) ~[?:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.createHeapStackFields(ProjectChoiceTab.java:993) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.buildLinkSettingsPanel(ProjectChoiceTab.java:3813) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.defineWindowsFields(ProjectChoiceTab.java:1987) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.updateSettings(ProjectChoiceTab.java:558) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectSettingsPanel.UpdateDialog(ProjectSettingsPanel.java:247) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.ProjectManagerView.propertyChange(ProjectManagerView.java:392) ~[filemanager.jar:?]
- at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343) ~[?:?]
- at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:335) ~[?:?]
- at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268) ~[?:?]
- at com.st.microxplorer.util.MXPropertyChangeSupport.firePropertyChange(MXPropertyChangeSupport.java:54) ~[STM32CubeMX.jar:?]
- at com.st.microxplorer.mxsystem.MxSystem.closeConfig(MxSystem.java:899) ~[STM32CubeMX.jar:?]
- at com.st.microxplorer.maingui.MainPanel.closeConfig(MainPanel.java:792) ~[STM32CubeMX.jar:?]
- at com.st.microxplorer.plugins.filemanager.engine.OpenFileManager.loadConfigurationFile(OpenFileManager.java:288) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:364) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:342) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.filemanager.FileManagerView.getSpecificTask(FileManagerView.java:264) ~[filemanager.jar:?]
- at com.st.stm32cube.common.mx.editor.CubeMxEditor.getMxTabbedPaneInstance(CubeMxEditor.java:1198) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.editor.CubeMxEditor$12$1.createSwingComponent(CubeMxEditor.java:1068) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite.doComponentCreation(EmbeddedSwingComposite.java:492) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite$4.run(EmbeddedSwingComposite.java:291) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.oss.core.awtswtbridge.AwtEnvironment$2.run(AwtEnvironment.java:166) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
- at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) ~[?:?]
- at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[?:?]
- at java.awt.EventQueue$4.run(EventQueue.java:720) ~[?:?]
- at java.awt.EventQueue$4.run(EventQueue.java:714) ~[?:?]
- at java.security.AccessController.doPrivileged(AccessController.java:400) ~[?:?]
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) ~[?:?]
- at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[?:?]
- at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[?:?]
- at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[?:?]
- at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) ~[?:?]
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) ~[?:?]
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[?:?]
- at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ~[?:?]
-2025-09-20 02:22:38,301 [WARN] ThirdParty:871 - waiting for thirdparty lock release [close project]
-2025-09-20 02:22:38,302 [INFO] ThirdParty:873 - entering critical section [close project]
-2025-09-20 02:22:38,302 [INFO] ThirdParty:883 - exiting critical section [close project]
-2025-09-20 02:22:38,304 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 02:22:38,311 [WARN] IpParametersView:155 - Warning: This peripheral hasn't parameters
-2025-09-20 02:22:38,315 [WARN] MainPanel:289 - Warning: This peripheral has no parameters to be configured
-2025-09-20 02:22:38,317 [INFO] UtilMem:75 - Begin LoadConfig() Used Memory: 563928608 Bytes (940572672)
-2025-09-20 02:22:38,318 [INFO] MicroXplorer:468 - Change Database Path :
-2025-09-20 02:22:38,318 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 02:22:38,318 [INFO] OpenFileManager:355 - Change cursor
-2025-09-20 02:22:38,342 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
-2025-09-20 02:22:38,352 [INFO] Mcu:2029 - Initializing MCU STM32F429ZITx STM32F429ZITx STM32F429ZIT6
-2025-09-20 02:22:39,587 [INFO] Context:786 - Trying to add GPIOservice into a context which must be forbidden
-2025-09-20 02:22:40,873 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) Pin101 (VP_RIF_VS_RIF1) cannot be retrieved for this MCU
-2025-09-20 02:22:40,958 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS, mode=CMSIS_V1, owner=FREERTOS
-2025-09-20 02:22:40,958 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS2, mode=CMSIS_V2, owner=FREERTOS
-2025-09-20 02:22:40,959 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V1, owner=FREERTOS
-2025-09-20 02:22:40,959 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V2, owner=FREERTOS
-2025-09-20 02:22:40,959 [WARN] ModelIntegratedComponent:184 - Missing modes for component STMicroelectronics:FreeRTOS:0.0.1:STMicroelectronics:RTOS:FreeRTOS:Core:::10.2.0:
-2025-09-20 02:22:40,996 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:41,000 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:41,000 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:41,000 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:41,000 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:41,000 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:22:41,000 [WARN] ModelPack:524 - Component already loaded: STMicroelectronics:HAL Drivers:0.0.0:STMicroelectronics:Device:STMicro_Driver:XSPI:HAL::0.0.1:HAL_XSPI
-2025-09-20 02:22:41,217 [INFO] ThirdPartyModel:298 - Start build external matchings
-2025-09-20 02:22:42,424 [INFO] ThirdPartyModel:316 - End build external matchings
-2025-09-20 02:22:42,449 [INFO] RtosManager:1018 - Current active RTOS is FREERTOS [Cortex-M4NS]
-2025-09-20 02:22:42,460 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:22:42,461 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Invalid parameter (FamilyName)
-2025-09-20 02:22:42,461 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Parameter (RTCHSEDivFreq_Value) has invalid value (4000000)
-2025-09-20 02:22:42,744 [INFO] UtilMem:75 - End LoadConfig() Used Memory: 527279784 Bytes (979369984)
-2025-09-20 02:22:42,761 [WARN] ThirdParty:833 - waiting for thirdparty lock release [change project]
-2025-09-20 02:22:42,762 [INFO] ThirdParty:835 - entering critical section [change project]
-2025-09-20 02:22:42,762 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-PM33A1 1.0.0
-2025-09-20 02:22:42,762 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USBPD 4.1
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC9 1.0.0
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 2.0.0
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENVWB1 1.4.0
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F4 1.1.0
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics LIBJPEG 8.0.0
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-ASTRA1 2.0.2
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSL 5.8.2
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE1 7.1.0
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Avnet-IotConnect X-CUBE-IoTC-DA16k-PMOD 1.0.0
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SMBUS 2.1.0
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfMQTT 1.19.2
-2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 3.0.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ISPU 2.1.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-EEPRMA1 5.2.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLEMGR 4.1.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WB 2.0.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST60 1.0.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-GNSS1 7.0.1
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC12 1.0.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F7 1.1.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L5 2.0.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOUCHGFX 4.25.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 2.0.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC6 3.1.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :quantropi X-CUBE-qispace-sdk-base 2.1.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FreeRTOS 0.0.1
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G0 1.1.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SAFEA1 1.2.2
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC4 3.0.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SUBG2 5.0.0
-2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7RS 1.1.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics STM32_WPAN 1.0.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :EmbeddedOffice I-CUBE-FS-RTOS 1.0.1
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.0.3
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :WES I-CUBE-Cesium 1.4.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Cesanta I-CUBE-Mongoose 7.13.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 1.0.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Infineon AIROC-Wi-Fi-Bluetooth-STM32 1.7.1
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G4 2.0.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-WB05N 2.0.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.1.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.3.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfTPM 3.8.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7 3.4.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DISPLAY 3.0.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSH 1.4.20
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC7 2.0.0
-2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TCPP 4.2.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :RealThread X-CUBE-RT-Thread_Nano 4.1.1
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-SIGFOX1 3.2.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC10 1.0.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-FREERTOS 1.3.1
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics HAL Drivers 0.0.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.16.2
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-IPS 3.1.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALS 1.0.2
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :emotas I-CUBE-CANOPEN 1.3.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.14.1
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :ITTIA_DB I-CUBE-ITTIADB 8.9.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-STSE01 1.0.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :portGmbH I-Cube-SoM-uGOAL 1.1.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST67W61 1.0.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STBOX1 2.1.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AI 10.2.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STAIOTCFT 1.0.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 1.0.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-SMARTAG2 1.2.0
-2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-FLIGHT1 5.1.0
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WL 2.0.0
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :SEGGER I-CUBE-embOS 1.3.1
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALGOBUILD 1.4.0
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DPower 1.3.0
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-MEMS1 11.3.0
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENV1 5.0.0
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 1.0.0
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L4 2.0.0
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 0.0.2
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.1.2
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SFXS2LP1 4.0.0
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE2 3.3.0
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOF1 3.4.3
-2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.2.0
-2025-09-20 02:22:42,768 [INFO] ThirdParty:841 - exiting critical section [change project]
-2025-09-20 02:22:43,346 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 02:22:43,346 [INFO] PinOutPanel:1589 - setPackage(STM32F429ZITx,LQFP144)
-2025-09-20 02:22:44,091 [INFO] UtilMem:75 - Before build in PCC Used Memory: 376833528 Bytes (979369984)
-2025-09-20 02:22:45,385 [INFO] UtilMem:75 - After build in PCC Used Memory: 428735992 Bytes (979369984)
-2025-09-20 02:22:45,396 [INFO] ApiDbMcu:532 - Load IP Config File for FREERTOS
-2025-09-20 02:22:45,402 [INFO] ApiDbMcu:532 - Load IP Config File for USB_HOST
-2025-09-20 02:22:45,468 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,468 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,469 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,469 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,469 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,469 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,470 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,470 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,471 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,471 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,472 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,472 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,472 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,473 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,473 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,475 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,476 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,476 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,477 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,477 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,478 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,478 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,479 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,480 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,480 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,481 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,482 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,483 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,483 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,484 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,484 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,485 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,486 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,487 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,487 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,488 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,488 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,489 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,489 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,489 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,490 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,490 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,490 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,490 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,490 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,491 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,491 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,491 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,492 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,493 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,494 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,495 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,496 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,497 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,498 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,499 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,500 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,501 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,502 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,504 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,505 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:22:45,509 [INFO] ApiDbMcu:532 - Load IP Config File for PDM2PCM
-2025-09-20 02:22:45,535 [WARN] FreeRTOS:1023 - Null or empty value: should not occur! (nothing added to the table)
-2025-09-20 02:22:45,673 [INFO] CADModel:165 - CPN selected for project levelSTM32F429ZIT6
-2025-09-20 02:22:45,673 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 02:22:45,677 [INFO] RtosManager:728 - Active RTOS found at IOC load: FREERTOS [Cortex-M4NS]
-2025-09-20 02:22:45,725 [INFO] OpenFileManager:386 - Restore cursor
-2025-09-20 02:22:46,028 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:28:22,703 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 02:28:22,704 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 02:28:22,768 [INFO] MicroXplorer:468 - Change Database Path :
-2025-09-20 02:28:22,769 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 02:28:22,792 [ERROR] ProjectManagerView:395 -
-java.lang.NullPointerException: Cannot invoke "javax.swing.JTextField.getText()" because the return value of "java.util.List.get(int)" is null
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab$9.caretUpdate(ProjectChoiceTab.java:2706) ~[filemanager.jar:?]
- at javax.swing.text.JTextComponent.fireCaretUpdate(JTextComponent.java:408) ~[?:?]
- at javax.swing.text.JTextComponent$MutableCaretEvent.fire(JTextComponent.java:4484) ~[?:?]
- at javax.swing.text.JTextComponent$MutableCaretEvent.stateChanged(JTextComponent.java:4506) ~[?:?]
- at javax.swing.text.DefaultCaret.fireStateChanged(DefaultCaret.java:857) ~[?:?]
- at javax.swing.text.DefaultCaret.changeCaretPosition(DefaultCaret.java:1343) ~[?:?]
- at javax.swing.text.DefaultCaret.handleSetDot(DefaultCaret.java:1242) ~[?:?]
- at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1223) ~[?:?]
- at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1819) ~[?:?]
- at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:227) ~[?:?]
- at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:781) ~[?:?]
- at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:740) ~[?:?]
- at javax.swing.text.PlainDocument.insertString(PlainDocument.java:131) ~[?:?]
- at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:699) ~[?:?]
- at javax.swing.text.JTextComponent.setText(JTextComponent.java:1725) ~[?:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.createHeapStackFields(ProjectChoiceTab.java:993) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.buildLinkSettingsPanel(ProjectChoiceTab.java:3813) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.defineWindowsFields(ProjectChoiceTab.java:1987) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.updateSettings(ProjectChoiceTab.java:558) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.gui.ProjectSettingsPanel.UpdateDialog(ProjectSettingsPanel.java:247) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.projectmanager.ProjectManagerView.propertyChange(ProjectManagerView.java:392) ~[filemanager.jar:?]
- at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343) ~[?:?]
- at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:335) ~[?:?]
- at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268) ~[?:?]
- at com.st.microxplorer.util.MXPropertyChangeSupport.firePropertyChange(MXPropertyChangeSupport.java:54) ~[STM32CubeMX.jar:?]
- at com.st.microxplorer.mxsystem.MxSystem.closeConfig(MxSystem.java:899) ~[STM32CubeMX.jar:?]
- at com.st.microxplorer.maingui.MainPanel.closeConfig(MainPanel.java:792) ~[STM32CubeMX.jar:?]
- at com.st.microxplorer.plugins.filemanager.engine.OpenFileManager.loadConfigurationFile(OpenFileManager.java:288) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:364) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:342) ~[filemanager.jar:?]
- at com.st.microxplorer.plugins.filemanager.FileManagerView.getSpecificTask(FileManagerView.java:264) ~[filemanager.jar:?]
- at com.st.stm32cube.common.mx.editor.CubeMxEditor.getMxTabbedPaneInstance(CubeMxEditor.java:1198) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.editor.CubeMxEditor$12$1.createSwingComponent(CubeMxEditor.java:1068) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite.doComponentCreation(EmbeddedSwingComposite.java:492) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite$4.run(EmbeddedSwingComposite.java:291) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
- at com.st.stm32cube.common.mx.oss.core.awtswtbridge.AwtEnvironment$2.run(AwtEnvironment.java:166) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
- at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) ~[?:?]
- at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[?:?]
- at java.awt.EventQueue$4.run(EventQueue.java:720) ~[?:?]
- at java.awt.EventQueue$4.run(EventQueue.java:714) ~[?:?]
- at java.security.AccessController.doPrivileged(AccessController.java:400) ~[?:?]
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) ~[?:?]
- at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[?:?]
- at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[?:?]
- at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[?:?]
- at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) ~[?:?]
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) ~[?:?]
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[?:?]
- at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ~[?:?]
-2025-09-20 02:28:22,794 [WARN] ThirdParty:871 - waiting for thirdparty lock release [close project]
-2025-09-20 02:28:22,794 [INFO] ThirdParty:873 - entering critical section [close project]
-2025-09-20 02:28:22,794 [INFO] ThirdParty:883 - exiting critical section [close project]
-2025-09-20 02:28:22,798 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 02:28:22,814 [WARN] IpParametersView:155 - Warning: This peripheral hasn't parameters
-2025-09-20 02:28:22,819 [WARN] MainPanel:289 - Warning: This peripheral has no parameters to be configured
-2025-09-20 02:28:22,823 [INFO] UtilMem:75 - Begin LoadConfig() Used Memory: 337899672 Bytes (979369984)
-2025-09-20 02:28:22,824 [INFO] MicroXplorer:468 - Change Database Path :
-2025-09-20 02:28:22,824 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 02:28:22,824 [INFO] OpenFileManager:355 - Change cursor
-2025-09-20 02:28:22,838 [INFO] Mcu:2029 - Initializing MCU STM32F429ZITx STM32F429ZITx STM32F429ZIT6
-2025-09-20 02:28:25,913 [INFO] Context:786 - Trying to add GPIOservice into a context which must be forbidden
-2025-09-20 02:28:26,609 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) Pin101 (VP_RIF_VS_RIF1) cannot be retrieved for this MCU
-2025-09-20 02:28:26,664 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS, mode=CMSIS_V1, owner=FREERTOS
-2025-09-20 02:28:26,664 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS2, mode=CMSIS_V2, owner=FREERTOS
-2025-09-20 02:28:26,664 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V1, owner=FREERTOS
-2025-09-20 02:28:26,664 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V2, owner=FREERTOS
-2025-09-20 02:28:26,664 [WARN] ModelIntegratedComponent:184 - Missing modes for component STMicroelectronics:FreeRTOS:0.0.1:STMicroelectronics:RTOS:FreeRTOS:Core:::10.2.0:
-2025-09-20 02:28:26,680 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
-2025-09-20 02:28:26,682 [WARN] ModelPack:524 - Component already loaded: STMicroelectronics:HAL Drivers:0.0.0:STMicroelectronics:Device:STMicro_Driver:XSPI:HAL::0.0.1:HAL_XSPI
-2025-09-20 02:28:26,868 [INFO] ThirdPartyModel:298 - Start build external matchings
-2025-09-20 02:28:27,937 [INFO] ThirdPartyModel:316 - End build external matchings
-2025-09-20 02:28:27,957 [INFO] RtosManager:1018 - Current active RTOS is FREERTOS [Cortex-M4NS]
-2025-09-20 02:28:27,967 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 02:28:27,967 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Invalid parameter (FamilyName)
-2025-09-20 02:28:27,968 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Parameter (RTCHSEDivFreq_Value) has invalid value (4000000)
-2025-09-20 02:28:28,283 [INFO] UtilMem:75 - End LoadConfig() Used Memory: 744418984 Bytes (979369984)
-2025-09-20 02:28:28,308 [WARN] ThirdParty:833 - waiting for thirdparty lock release [change project]
-2025-09-20 02:28:28,309 [INFO] ThirdParty:835 - entering critical section [change project]
-2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-PM33A1 1.0.0
-2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USBPD 4.1
-2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC9 1.0.0
-2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 2.0.0
-2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENVWB1 1.4.0
-2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F4 1.1.0
-2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics LIBJPEG 8.0.0
-2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-ASTRA1 2.0.2
-2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSL 5.8.2
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE1 7.1.0
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Avnet-IotConnect X-CUBE-IoTC-DA16k-PMOD 1.0.0
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SMBUS 2.1.0
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfMQTT 1.19.2
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 3.0.0
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ISPU 2.1.0
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-EEPRMA1 5.2.0
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLEMGR 4.1.0
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WB 2.0.0
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST60 1.0.0
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-GNSS1 7.0.1
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC12 1.0.0
-2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F7 1.1.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L5 2.0.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOUCHGFX 4.25.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 2.0.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC6 3.1.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :quantropi X-CUBE-qispace-sdk-base 2.1.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FreeRTOS 0.0.1
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G0 1.1.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SAFEA1 1.2.2
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC4 3.0.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SUBG2 5.0.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7RS 1.1.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics STM32_WPAN 1.0.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :EmbeddedOffice I-CUBE-FS-RTOS 1.0.1
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.0.3
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :WES I-CUBE-Cesium 1.4.0
-2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Cesanta I-CUBE-Mongoose 7.13.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 1.0.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Infineon AIROC-Wi-Fi-Bluetooth-STM32 1.7.1
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G4 2.0.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-WB05N 2.0.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.1.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.3.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfTPM 3.8.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7 3.4.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DISPLAY 3.0.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSH 1.4.20
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC7 2.0.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TCPP 4.2.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :RealThread X-CUBE-RT-Thread_Nano 4.1.1
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-SIGFOX1 3.2.0
-2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC10 1.0.0
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-FREERTOS 1.3.1
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics HAL Drivers 0.0.0
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.16.2
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-IPS 3.1.0
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALS 1.0.2
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :emotas I-CUBE-CANOPEN 1.3.0
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.14.1
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :ITTIA_DB I-CUBE-ITTIADB 8.9.0
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-STSE01 1.0.0
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :portGmbH I-Cube-SoM-uGOAL 1.1.0
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST67W61 1.0.0
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STBOX1 2.1.0
-2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AI 10.2.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STAIOTCFT 1.0.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 1.0.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-SMARTAG2 1.2.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-FLIGHT1 5.1.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WL 2.0.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :SEGGER I-CUBE-embOS 1.3.1
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALGOBUILD 1.4.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DPower 1.3.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-MEMS1 11.3.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENV1 5.0.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 1.0.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L4 2.0.0
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 0.0.2
-2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.1.2
-2025-09-20 02:28:28,315 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SFXS2LP1 4.0.0
-2025-09-20 02:28:28,315 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE2 3.3.0
-2025-09-20 02:28:28,315 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOF1 3.4.3
-2025-09-20 02:28:28,315 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.2.0
-2025-09-20 02:28:28,316 [INFO] ThirdParty:841 - exiting critical section [change project]
-2025-09-20 02:28:29,200 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 02:28:29,202 [INFO] PinOutPanel:1589 - setPackage(STM32F429ZITx,LQFP144)
-2025-09-20 02:28:30,463 [INFO] UtilMem:75 - Before build in PCC Used Memory: 388951720 Bytes (979369984)
-2025-09-20 02:28:30,890 [INFO] UtilMem:75 - After build in PCC Used Memory: 437186216 Bytes (979369984)
-2025-09-20 02:28:30,900 [INFO] ApiDbMcu:532 - Load IP Config File for FREERTOS
-2025-09-20 02:28:30,907 [INFO] ApiDbMcu:532 - Load IP Config File for USB_HOST
-2025-09-20 02:28:30,978 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,979 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,979 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,979 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,979 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,980 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,981 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,981 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,982 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,983 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,983 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,984 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,984 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,984 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,985 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,986 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,986 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,987 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,987 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,987 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,988 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,988 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,989 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,990 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,990 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,991 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,991 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,992 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,993 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,994 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,995 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,996 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,997 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,997 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,997 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,998 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,998 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,998 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,999 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,999 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:30,999 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,000 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,000 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,000 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,000 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,000 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,001 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,001 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,001 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,001 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,001 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,002 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,002 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,003 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,004 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,005 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,006 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,007 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,009 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,010 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,011 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,012 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,014 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,016 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,018 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,020 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 02:28:31,026 [INFO] ApiDbMcu:532 - Load IP Config File for PDM2PCM
-2025-09-20 02:28:31,050 [WARN] FreeRTOS:1023 - Null or empty value: should not occur! (nothing added to the table)
-2025-09-20 02:28:31,326 [INFO] CADModel:165 - CPN selected for project levelSTM32F429ZIT6
-2025-09-20 02:28:31,326 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 02:28:31,331 [INFO] RtosManager:728 - Active RTOS found at IOC load: FREERTOS [Cortex-M4NS]
-2025-09-20 02:28:31,385 [INFO] OpenFileManager:386 - Restore cursor
-2025-09-20 02:28:31,548 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
-2025-09-20 03:16:22,966 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
-2025-09-20 03:16:22,966 [INFO] WebAppUi:306 - Updating consent from JSON file
-2025-09-20 03:16:23,086 [INFO] WebApp:403 - JxBrowser engine has been closed
-2025-09-20 03:16:23,086 [INFO] WebAppUi:504 - JxBrowser engine has been closed
-2025-09-20 03:16:23,087 [INFO] WebAppUi:541 - Close the Jxbrowser engine manually
-2025-09-20 03:16:23,814 [ERROR] LogOutputStream:75 - [STDERR_REDIRECT]
-2025-09-20 14:37:35,081 [INFO] Activator:176 -
-
-
-2025-09-20 14:37:35,083 [INFO] Activator:177 - !SESSION log4j initialized
-2025-09-20 14:37:41,375 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT]
-2025-09-20 14:37:44,360 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
-2025-09-20 14:37:44,399 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
-2025-09-20 14:37:44,399 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
-2025-09-20 14:37:44,400 [WARN] ApiDb:259 - Overriding images path with different value: => /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
-2025-09-20 14:37:44,410 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 14:37:44,413 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 14:37:44,418 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
-2025-09-20 14:37:44,662 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
-2025-09-20 14:37:44,768 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
-2025-09-20 14:37:44,768 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
-2025-09-20 14:37:44,769 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
-2025-09-20 14:37:44,769 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 14:37:44,769 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 14:37:44,770 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 14:37:44,770 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 14:37:44,770 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 14:37:44,770 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 14:37:44,771 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
-2025-09-20 14:37:44,873 [INFO] MainPanel:274 - HeapMemory: 268435456
-2025-09-20 14:37:45,230 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
-2025-09-20 14:37:45,230 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
-2025-09-20 14:37:45,230 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
-2025-09-20 14:37:45,231 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 14:37:45,231 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 14:37:45,231 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 14:37:45,231 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
-2025-09-20 14:37:45,232 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 14:37:45,232 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
-2025-09-20 14:37:45,232 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
-2025-09-20 14:37:45,254 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
-2025-09-20 14:37:45,257 [INFO] PluginManage:196 - Search for loadable plugins [exclusion list=, ]
-2025-09-20 14:37:45,259 [INFO] PluginManage:310 - Check plugin analytics
-2025-09-20 14:37:45,664 [INFO] AnalyticsPlugin:253 - Accepted Software Licenses: STM32CubeMX.6.15.0
-2025-09-20 14:37:45,665 [INFO] AnalyticsPlugin:255 - Accepted CMSIS Pack Licenses:
-2025-09-20 14:37:45,665 [INFO] AnalyticsPlugin:257 - Accepted Firmware Licenses: FW.F4.1.28.0
-2025-09-20 14:37:45,670 [INFO] PluginManage:359 - Loaded plugin analytics (category:tool,tabindex:-1)
-2025-09-20 14:37:45,671 [INFO] PluginManage:310 - Check plugin cadmodel
-2025-09-20 14:37:45,679 [INFO] CADModel:105 - Init CAD model plugin
-2025-09-20 14:37:45,680 [INFO] PluginManage:359 - Loaded plugin cadmodel (category:power,tabindex:5)
-2025-09-20 14:37:45,680 [INFO] PluginManage:310 - Check plugin clock
-2025-09-20 14:37:45,695 [INFO] PluginManage:359 - Loaded plugin clock (category:base,tabindex:2)
-2025-09-20 14:37:45,695 [INFO] PluginManage:310 - Check plugin ddr
-2025-09-20 14:37:45,698 [INFO] PluginManage:359 - Loaded plugin ddr (category:tool,tabindex:6)
-2025-09-20 14:37:45,698 [INFO] PluginManage:310 - Check plugin filemanager
-2025-09-20 14:37:45,910 [INFO] PluginManage:359 - Loaded plugin filemanager (category:base,tabindex:10)
-2025-09-20 14:37:45,910 [INFO] PluginManage:310 - Check plugin ipmanager
-2025-09-20 14:37:45,918 [INFO] PluginManage:359 - Loaded plugin ipmanager (category:base,tabindex:5)
-2025-09-20 14:37:45,918 [INFO] PluginManage:310 - Check plugin lpbam
-2025-09-20 14:37:45,933 [INFO] PluginManage:359 - Loaded plugin lpbam (category:base,tabindex:0)
-2025-09-20 14:37:45,933 [INFO] PluginManage:310 - Check plugin memorymap
-2025-09-20 14:37:45,952 [INFO] PluginManage:359 - Loaded plugin memorymap (category:base,tabindex:4)
-2025-09-20 14:37:45,952 [INFO] PluginManage:310 - Check plugin pinoutandconfiguration
-2025-09-20 14:37:45,962 [INFO] PluginManage:359 - Loaded plugin pinoutandconfiguration (category:base,tabindex:1)
-2025-09-20 14:37:45,963 [INFO] PluginManage:310 - Check plugin pinoutconfig
-2025-09-20 14:37:46,099 [WARN] SupportedApi:132 - Cannot load RTOS API schema: s4s-elt-must-match.1: The content of 'definitions' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.
-2025-09-20 14:37:46,289 [INFO] PluginManage:359 - Loaded plugin pinoutconfig (category:base,tabindex:0)
-2025-09-20 14:37:46,290 [INFO] PluginManage:310 - Check plugin power
-2025-09-20 14:37:46,305 [INFO] PluginManage:359 - Loaded plugin power (category:power,tabindex:4)
-2025-09-20 14:37:46,305 [INFO] PluginManage:310 - Check plugin projectmanager
-2025-09-20 14:37:46,329 [INFO] PluginManage:359 - Loaded plugin projectmanager (category:projectmanager,tabindex:4)
-2025-09-20 14:37:46,330 [INFO] PluginManage:310 - Check plugin rif
-2025-09-20 14:37:46,342 [INFO] PluginManage:359 - Loaded plugin rif (category:base,tabindex:3)
-2025-09-20 14:37:46,342 [INFO] PluginManage:310 - Check plugin thirdparty
-2025-09-20 14:37:46,530 [WARN] IntegrityCheckThread:84 - waiting for thirdparty lock release [integrity check]
-2025-09-20 14:37:46,531 [INFO] PluginManage:359 - Loaded plugin thirdparty (category:base,tabindex:-1)
-2025-09-20 14:37:46,531 [INFO] IntegrityCheckThread:86 - entering critical section [integrity check]
-2025-09-20 14:37:46,531 [INFO] PluginManage:310 - Check plugin tools
-2025-09-20 14:37:46,531 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [1/15]
-2025-09-20 14:37:46,535 [INFO] PluginManage:359 - Loaded plugin tools (category:base,tabindex:7)
-2025-09-20 14:37:46,536 [INFO] PluginManage:310 - Check plugin tutovideos
-2025-09-20 14:37:46,809 [INFO] PluginManage:359 - Loaded plugin tutovideos (category:base,tabindex:-1)
-2025-09-20 14:37:46,809 [INFO] PluginManage:310 - Check plugin updater
-2025-09-20 14:37:46,836 [INFO] PluginManage:359 - Loaded plugin updater (category:base,tabindex:12)
-2025-09-20 14:37:46,836 [INFO] PluginManage:310 - Check plugin userauth
-2025-09-20 14:37:46,841 [INFO] UserAuth:118 - Init User Auth plugin
-2025-09-20 14:37:46,842 [INFO] PluginManage:359 - Loaded plugin userauth (category:base,tabindex:14)
-2025-09-20 14:37:46,842 [INFO] PluginManage:283 - PluginManage : Loaded plugins [18]
-2025-09-20 14:37:47,072 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
-2025-09-20 14:37:47,155 [INFO] CADModel:165 - CPN selected for project level
-2025-09-20 14:37:47,155 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 14:37:47,170 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,170 [INFO] PluginManager:220 - loadIPPluginJar : add gtzc
-2025-09-20 14:37:47,177 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,177 [INFO] PluginManager:220 - loadIPPluginJar : add usbx
-2025-09-20 14:37:47,178 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,179 [INFO] PluginManager:220 - loadIPPluginJar : add fatfs
-2025-09-20 14:37:47,182 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,182 [INFO] PluginManager:220 - loadIPPluginJar : add i2c
-2025-09-20 14:37:47,184 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,184 [INFO] PluginManager:220 - loadIPPluginJar : add tim
-2025-09-20 14:37:47,185 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,186 [INFO] PluginManager:220 - loadIPPluginJar : add quadspi
-2025-09-20 14:37:47,189 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,190 [INFO] PluginManager:220 - loadIPPluginJar : add ipddr
-2025-09-20 14:37:47,192 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,193 [INFO] PluginManager:220 - loadIPPluginJar : add i2s
-2025-09-20 14:37:47,196 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,196 [INFO] PluginManager:220 - loadIPPluginJar : add openamp
-2025-09-20 14:37:47,199 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,199 [INFO] PluginManager:220 - loadIPPluginJar : add i3c
-2025-09-20 14:37:47,201 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,201 [INFO] PluginManager:220 - loadIPPluginJar : add ucpd
-2025-09-20 14:37:47,204 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,204 [INFO] PluginManager:220 - loadIPPluginJar : add cryp
-2025-09-20 14:37:47,206 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,206 [INFO] PluginManager:220 - loadIPPluginJar : add comp
-2025-09-20 14:37:47,208 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,209 [INFO] PluginManager:220 - loadIPPluginJar : add spi
-2025-09-20 14:37:47,212 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,213 [INFO] PluginManager:220 - loadIPPluginJar : add touchsensing
-2025-09-20 14:37:47,215 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,216 [INFO] PluginManager:220 - loadIPPluginJar : add can
-2025-09-20 14:37:47,218 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,218 [INFO] PluginManager:220 - loadIPPluginJar : add aes
-2025-09-20 14:37:47,227 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,227 [INFO] PluginManager:220 - loadIPPluginJar : add adc
-2025-09-20 14:37:47,232 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,233 [INFO] PluginManager:220 - loadIPPluginJar : add nvic
-2025-09-20 14:37:47,239 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,240 [INFO] PluginManager:220 - loadIPPluginJar : add freertos
-2025-09-20 14:37:47,247 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,247 [INFO] PluginManager:220 - loadIPPluginJar : add dma
-2025-09-20 14:37:47,251 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,251 [INFO] PluginManager:220 - loadIPPluginJar : add resmgrutility
-2025-09-20 14:37:47,254 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,254 [INFO] PluginManager:220 - loadIPPluginJar : add pdm2pcm
-2025-09-20 14:37:47,257 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,257 [INFO] PluginManager:220 - loadIPPluginJar : add hash
-2025-09-20 14:37:47,259 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,260 [INFO] PluginManager:220 - loadIPPluginJar : add dfsdm
-2025-09-20 14:37:47,261 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,262 [INFO] PluginManager:220 - loadIPPluginJar : add radio
-2025-09-20 14:37:47,269 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,273 [INFO] PluginManager:220 - loadIPPluginJar : add plateformsettings
-2025-09-20 14:37:47,279 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,279 [INFO] PluginManager:220 - loadIPPluginJar : add gic
-2025-09-20 14:37:47,281 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,281 [INFO] PluginManager:220 - loadIPPluginJar : add ltdc
-2025-09-20 14:37:47,283 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,283 [INFO] PluginManager:220 - loadIPPluginJar : add tracer_emb
-2025-09-20 14:37:47,286 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,286 [INFO] PluginManager:220 - loadIPPluginJar : add lorawan
-2025-09-20 14:37:47,288 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,288 [INFO] PluginManager:220 - loadIPPluginJar : add tsc
-2025-09-20 14:37:47,290 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,290 [INFO] PluginManager:220 - loadIPPluginJar : add ts
-2025-09-20 14:37:47,292 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,293 [INFO] PluginManager:220 - loadIPPluginJar : add gfxmmu
-2025-09-20 14:37:47,296 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,296 [INFO] PluginManager:220 - loadIPPluginJar : add dma3
-2025-09-20 14:37:47,299 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,299 [INFO] PluginManager:220 - loadIPPluginJar : add ddr_ctrl_phy
-2025-09-20 14:37:47,301 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,301 [INFO] PluginManager:220 - loadIPPluginJar : add genericplugin
-2025-09-20 14:37:47,304 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,304 [INFO] PluginManager:220 - loadIPPluginJar : add opamp
-2025-09-20 14:37:47,312 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,312 [INFO] PluginManager:220 - loadIPPluginJar : add stm32_wpan
-2025-09-20 14:37:47,316 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,316 [INFO] PluginManager:220 - loadIPPluginJar : add usart
-2025-09-20 14:37:47,319 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,319 [INFO] PluginManager:220 - loadIPPluginJar : add sai
-2025-09-20 14:37:47,328 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,328 [INFO] PluginManager:220 - loadIPPluginJar : add linkedlist
-2025-09-20 14:37:47,331 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,331 [INFO] PluginManager:220 - loadIPPluginJar : add extmemmanager
-2025-09-20 14:37:47,336 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,336 [INFO] PluginManager:220 - loadIPPluginJar : add fmc
-2025-09-20 14:37:47,341 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,341 [INFO] PluginManager:220 - loadIPPluginJar : add gpio
-2025-09-20 14:37:47,348 [INFO] IPUIPlugin:80 - create IPUIPlugin
-2025-09-20 14:37:47,348 [INFO] PluginManager:220 - loadIPPluginJar : add mdma
-2025-09-20 14:37:47,458 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:47,494 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
-2025-09-20 14:37:47,511 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
-2025-09-20 14:37:47,520 [INFO] CADModel:165 - CPN selected for project level
-2025-09-20 14:37:47,520 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 14:37:47,520 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:47,520 [ERROR] CADModel:125 - Updater not yet initialized, retry later
-2025-09-20 14:37:47,705 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:47,707 [INFO] CADModel:165 - CPN selected for project level
-2025-09-20 14:37:47,707 [INFO] CADModel:114 - Register for checkConnection events
-2025-09-20 14:37:47,708 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:47,708 [ERROR] CADModel:125 - Updater not yet initialized, retry later
-2025-09-20 14:37:47,712 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:47,871 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:47,877 [INFO] DbMcusAds:53 - JSON generation date=Tue Jul 08 03:14:23 CDT 2025 (1751962463524)
-2025-09-20 14:37:47,877 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:47,963 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
-2025-09-20 14:37:48,092 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:48,094 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:48,095 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:48,095 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
-2025-09-20 14:37:48,096 [FATAL] Updater:351 - Updater called before beeing initialized
-2025-09-20 14:37:48,148 [ERROR] Updater:1198 - MainUpdater not yet initialized. External WinMGr cannot be set.
-2025-09-20 14:37:48,150 [INFO] Updater:1134 - Updater Version found : 6.15.0
-2025-09-20 14:37:48,176 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
-2025-09-20 14:37:49,186 [INFO] MainUpdater:2872 - connection check result : 10
-2025-09-20 14:37:49,186 [INFO] MainUpdater:3604 - Updater definition file requires update
-2025-09-20 14:37:49,186 [INFO] MainUpdater:289 - Updater Check For Update Now.
-2025-09-20 14:37:49,187 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
-2025-09-20 14:37:49,193 [INFO] McuFinderGlobals:63 - Set McuFinder mode to 2 (CubeIDE integrated)
-2025-09-20 14:37:49,193 [INFO] UserAuth:487 - Internet connection configuration mode: 1
-2025-09-20 14:37:49,208 [INFO] JxBrowserEngine:152 - Initiate JxBrowser Engine with user profile folder
-2025-09-20 14:37:49,383 [INFO] ServerAccessManage:452 - Complete download http(s) 200
-2025-09-20 14:37:49,384 [INFO] ServerAccessManage:509 - Download File updaters.zip
-2025-09-20 14:37:49,532 [WARN] MainUpdater:1193 - Updater busy. Cannot search thirdparties
-2025-09-20 14:37:49,532 [INFO] ThirdPartyUpdaterWithRetryManager:96 - Updater plugin is busy. [1/15]
-2025-09-20 14:37:49,930 [INFO] FileExtend:248 - Unzip File : updaters.zip
-2025-09-20 14:37:49,931 [INFO] FileExtend:263 - Standard Zip Deflate
-2025-09-20 14:37:50,040 [INFO] WebApp:169 - Instantiating new browser for Auth
-2025-09-20 14:37:50,566 [INFO] ServerAccessManage:452 - Complete download http(s) 200
-2025-09-20 14:37:50,567 [INFO] ServerAccessManage:509 - Download File PacksControlFlags.xml
-2025-09-20 14:37:50,832 [INFO] ServerAccessManage:452 - Complete download http(s) 200
-2025-09-20 14:37:50,832 [INFO] ServerAccessManage:509 - Download File cubemx.pidx
-2025-09-20 14:37:51,200 [INFO] LoadServerUpdatesThread:375 - End of LoadServerUpdate Thread
-2025-09-20 14:37:51,510 [INFO] CheckServerUpdateThread:120 - End of CheckServer Thread
-2025-09-20 14:37:51,831 [INFO] WebApp:463 - Apply proxy settings
-2025-09-20 14:37:51,833 [INFO] WebApp:548 - Chromium requires no authentication
-2025-09-20 14:37:51,852 [INFO] WebApp:491 - Direct internet connection detected
-2025-09-20 14:37:51,884 [INFO] WebApp:900 - Register for checkConnection events
-2025-09-20 14:37:51,884 [INFO] WebApp:463 - Apply proxy settings
-2025-09-20 14:37:51,884 [INFO] WebApp:548 - Chromium requires no authentication
-2025-09-20 14:37:51,885 [INFO] WebApp:491 - Direct internet connection detected
-2025-09-20 14:37:52,172 [INFO] WebApp:225 - Starting web application
-2025-09-20 14:37:52,172 [INFO] WebApp:593 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient1/index.html
-2025-09-20 14:37:52,350 [INFO] UserAuth:487 - Internet connection configuration mode: 1
-2025-09-20 14:37:52,869 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENVWB1.1.4.0
-2025-09-20 14:37:52,889 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-ASTRA1.2.0.2
-2025-09-20 14:37:52,904 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SMBUS.2.1.0
-2025-09-20 14:37:52,921 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST60.1.0.0
-2025-09-20 14:37:53,007 [INFO] WebApp:191 - Connection restablished
-2025-09-20 14:37:53,058 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F7.1.1.0
-2025-09-20 14:37:53,110 [WARN] PackLoader:240 - Cannot read IP mode file for WES.I-CUBE-Cesium.1.4.0
-2025-09-20 14:37:53,191 [WARN] PackLoader:240 - Cannot read IP mode file for Infineon.AIROC-Wi-Fi-Bluetooth-STM32.1.7.1
-2025-09-20 14:37:53,284 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7.3.4.0
-2025-09-20 14:37:53,309 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DISPLAY.3.0.0
-2025-09-20 14:37:53,346 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC10.1.0.0
-2025-09-20 14:37:53,363 [WARN] PackLoader:240 - Cannot read IP mode file for emotas.I-CUBE-CANOPEN.1.3.0
-2025-09-20 14:37:53,387 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STBOX1.2.1.0
-2025-09-20 14:37:53,411 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-SMARTAG2.1.2.0
-2025-09-20 14:37:53,433 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-FLIGHT1.5.1.0
-2025-09-20 14:37:53,460 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 14:37:53,464 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 14:37:53,465 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 14:37:53,465 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 14:37:53,470 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
-2025-09-20 14:37:53,483 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WL.2.0.0
-2025-09-20 14:37:53,496 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENV1.5.0.0
-2025-09-20 14:37:53,512 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE2.3.3.0
-2025-09-20 14:37:53,527 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC9.1.0.0
-2025-09-20 14:37:53,549 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSL.5.8.2
-2025-09-20 14:37:53,561 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE1.7.1.0
-2025-09-20 14:37:53,570 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfMQTT.1.19.2
-2025-09-20 14:37:53,582 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-EEPRMA1.5.2.0
-2025-09-20 14:37:53,629 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G0.1.1.0
-2025-09-20 14:37:53,646 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SAFEA1.1.2.2
-2025-09-20 14:37:53,655 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC4.3.0.0
-2025-09-20 14:37:53,675 [WARN] PackLoader:240 - Cannot read IP mode file for EmbeddedOffice.I-CUBE-FS-RTOS.1.0.1
-2025-09-20 14:37:53,687 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-WB05N.2.0.0
-2025-09-20 14:37:53,697 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfTPM.3.8.0
-2025-09-20 14:37:53,717 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TCPP.4.2.0
-2025-09-20 14:37:53,733 [WARN] PackLoader:240 - Cannot read IP mode file for RealThread.X-CUBE-RT-Thread_Nano.4.1.1
-2025-09-20 14:37:53,746 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-SIGFOX1.3.2.0
-2025-09-20 14:37:53,760 [WARN] PackLoader:240 - Cannot read IP mode file for ITTIA_DB.I-CUBE-ITTIADB.8.9.0
-2025-09-20 14:37:53,774 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST67W61.1.0.0
-2025-09-20 14:37:53,786 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AI.10.2.0
-2025-09-20 14:37:53,861 [WARN] PackLoader:240 - Cannot read IP mode file for SEGGER.I-CUBE-embOS.1.3.1
-2025-09-20 14:37:53,995 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALGOBUILD.1.4.0
-2025-09-20 14:37:54,180 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-MEMS1.11.3.0
-2025-09-20 14:37:54,522 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-PM33A1.1.0.0
-2025-09-20 14:37:54,573 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F4.1.1.0
-2025-09-20 14:37:54,585 [WARN] PackLoader:240 - Cannot read IP mode file for Avnet-IotConnect.X-CUBE-IoTC-DA16k-PMOD.1.0.0
-2025-09-20 14:37:54,593 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ISPU.2.1.0
-2025-09-20 14:37:54,608 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC12.1.0.0
-2025-09-20 14:37:54,642 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L5.2.0.0
-2025-09-20 14:37:54,659 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC6.3.1.0
-2025-09-20 14:37:54,673 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-FREERTOS.1.3.1
-2025-09-20 14:37:54,683 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STAIOTCFT.1.0.0
-2025-09-20 14:37:54,691 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DPower.1.3.0
-2025-09-20 14:37:54,733 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 14:37:54,735 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L4.2.0.0
-2025-09-20 14:37:54,738 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 14:37:54,739 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 14:37:54,740 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
-2025-09-20 14:37:54,758 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SFXS2LP1.4.0.0
-2025-09-20 14:37:54,788 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLEMGR.4.1.0
-2025-09-20 14:37:54,826 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 14:37:54,826 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 14:37:54,832 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WB.2.0.0
-2025-09-20 14:37:54,833 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 14:37:54,834 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 14:37:54,835 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 14:37:54,836 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 14:37:54,836 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
-2025-09-20 14:37:54,847 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-GNSS1.7.0.1
-2025-09-20 14:37:54,855 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOUCHGFX.4.25.0
-2025-09-20 14:37:54,860 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : Cortex-A Device cause : null
-2025-09-20 14:37:54,878 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
-2025-09-20 14:37:54,879 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
-2025-09-20 14:37:54,879 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
-2025-09-20 14:37:54,910 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SUBG2.5.0.0
-2025-09-20 14:37:54,966 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7RS.1.1.0
-2025-09-20 14:37:54,983 [WARN] PackLoader:240 - Cannot read IP mode file for Cesanta.I-CUBE-Mongoose.7.13.0
-2025-09-20 14:37:55,019 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G4.2.0.0
-2025-09-20 14:37:55,027 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSH.1.4.20
-2025-09-20 14:37:55,034 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC7.2.0.0
-2025-09-20 14:37:55,067 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-IPS.3.1.0
-2025-09-20 14:37:55,092 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALS.1.0.2
-2025-09-20 14:37:55,124 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-STSE01.1.0.0
-2025-09-20 14:37:55,141 [WARN] PackLoader:240 - Cannot read IP mode file for portGmbH.I-Cube-SoM-uGOAL.1.1.0
-2025-09-20 14:37:55,173 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOF1.3.4.3
-2025-09-20 14:37:55,199 [INFO] ThirdParty:978 - Integrity check success = true
-2025-09-20 14:37:55,199 [INFO] IntegrityCheckThread:100 - exiting critical section [integrity check]
-2025-09-20 14:37:55,200 [INFO] IntegrityCheckThread:103 - End integrity checks thread
+2025-09-21 01:25:27,798 [ERROR] LogOutputStream:75 - [STDERR_REDIRECT]
diff --git a/.metadata/.ide.log-2025-09-20.log b/.metadata/.ide.log-2025-09-20.log
new file mode 100644
index 0000000..9fcc122
--- /dev/null
+++ b/.metadata/.ide.log-2025-09-20.log
@@ -0,0 +1,2956 @@
+2025-09-20 00:17:48,329 [INFO] Activator:176 -
+
+
+2025-09-20 00:17:48,336 [INFO] Activator:177 - !SESSION log4j initialized
+2025-09-20 00:18:00,868 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT]
+2025-09-20 00:18:04,686 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 00:18:04,728 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 00:18:04,729 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 00:18:04,729 [WARN] ApiDb:259 - Overriding images path with different value: => /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 00:18:04,742 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 00:18:04,745 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 00:18:04,749 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 00:18:05,074 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 00:18:05,242 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 00:18:05,242 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 00:18:05,243 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 00:18:05,243 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 00:18:05,243 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 00:18:05,244 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 00:18:05,245 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 00:18:05,245 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 00:18:05,245 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 00:18:05,245 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 00:18:05,395 [INFO] MainPanel:274 - HeapMemory: 268435456
+2025-09-20 00:18:06,229 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 00:18:06,229 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 00:18:06,230 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 00:18:06,230 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 00:18:06,231 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 00:18:06,231 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 00:18:06,231 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 00:18:06,231 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 00:18:06,231 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 00:18:06,231 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 00:18:06,259 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 00:18:06,262 [INFO] PluginManage:196 - Search for loadable plugins [exclusion list=, ]
+2025-09-20 00:18:06,265 [INFO] PluginManage:310 - Check plugin analytics
+2025-09-20 00:18:06,791 [INFO] AnalyticsPlugin:253 - Accepted Software Licenses: STM32CubeMX.6.15.0
+2025-09-20 00:18:06,791 [INFO] AnalyticsPlugin:255 - Accepted CMSIS Pack Licenses:
+2025-09-20 00:18:06,791 [INFO] AnalyticsPlugin:257 - Accepted Firmware Licenses: FW.F4.1.28.0
+2025-09-20 00:18:06,802 [INFO] PluginManage:359 - Loaded plugin analytics (category:tool,tabindex:-1)
+2025-09-20 00:18:06,803 [INFO] PluginManage:310 - Check plugin cadmodel
+2025-09-20 00:18:06,812 [INFO] CADModel:105 - Init CAD model plugin
+2025-09-20 00:18:06,812 [INFO] PluginManage:359 - Loaded plugin cadmodel (category:power,tabindex:5)
+2025-09-20 00:18:06,813 [INFO] PluginManage:310 - Check plugin clock
+2025-09-20 00:18:06,835 [INFO] PluginManage:359 - Loaded plugin clock (category:base,tabindex:2)
+2025-09-20 00:18:06,835 [INFO] PluginManage:310 - Check plugin ddr
+2025-09-20 00:18:06,838 [INFO] PluginManage:359 - Loaded plugin ddr (category:tool,tabindex:6)
+2025-09-20 00:18:06,839 [INFO] PluginManage:310 - Check plugin filemanager
+2025-09-20 00:18:07,143 [INFO] PluginManage:359 - Loaded plugin filemanager (category:base,tabindex:10)
+2025-09-20 00:18:07,143 [INFO] PluginManage:310 - Check plugin ipmanager
+2025-09-20 00:18:07,157 [INFO] PluginManage:359 - Loaded plugin ipmanager (category:base,tabindex:5)
+2025-09-20 00:18:07,158 [INFO] PluginManage:310 - Check plugin lpbam
+2025-09-20 00:18:07,179 [INFO] PluginManage:359 - Loaded plugin lpbam (category:base,tabindex:0)
+2025-09-20 00:18:07,179 [INFO] PluginManage:310 - Check plugin memorymap
+2025-09-20 00:18:07,206 [INFO] PluginManage:359 - Loaded plugin memorymap (category:base,tabindex:4)
+2025-09-20 00:18:07,206 [INFO] PluginManage:310 - Check plugin pinoutandconfiguration
+2025-09-20 00:18:07,226 [INFO] PluginManage:359 - Loaded plugin pinoutandconfiguration (category:base,tabindex:1)
+2025-09-20 00:18:07,226 [INFO] PluginManage:310 - Check plugin pinoutconfig
+2025-09-20 00:18:07,453 [WARN] SupportedApi:132 - Cannot load RTOS API schema: s4s-elt-must-match.1: The content of 'definitions' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.
+2025-09-20 00:18:07,807 [INFO] PluginManage:359 - Loaded plugin pinoutconfig (category:base,tabindex:0)
+2025-09-20 00:18:07,807 [INFO] PluginManage:310 - Check plugin power
+2025-09-20 00:18:07,838 [INFO] PluginManage:359 - Loaded plugin power (category:power,tabindex:4)
+2025-09-20 00:18:07,839 [INFO] PluginManage:310 - Check plugin projectmanager
+2025-09-20 00:18:07,888 [INFO] PluginManage:359 - Loaded plugin projectmanager (category:projectmanager,tabindex:4)
+2025-09-20 00:18:07,889 [INFO] PluginManage:310 - Check plugin rif
+2025-09-20 00:18:07,912 [INFO] PluginManage:359 - Loaded plugin rif (category:base,tabindex:3)
+2025-09-20 00:18:07,913 [INFO] PluginManage:310 - Check plugin thirdparty
+2025-09-20 00:18:08,213 [INFO] PluginManage:359 - Loaded plugin thirdparty (category:base,tabindex:-1)
+2025-09-20 00:18:08,213 [WARN] IntegrityCheckThread:84 - waiting for thirdparty lock release [integrity check]
+2025-09-20 00:18:08,214 [INFO] IntegrityCheckThread:86 - entering critical section [integrity check]
+2025-09-20 00:18:08,214 [INFO] PluginManage:310 - Check plugin tools
+2025-09-20 00:18:08,215 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [1/15]
+2025-09-20 00:18:08,218 [INFO] PluginManage:359 - Loaded plugin tools (category:base,tabindex:7)
+2025-09-20 00:18:08,219 [INFO] PluginManage:310 - Check plugin tutovideos
+2025-09-20 00:18:08,792 [INFO] PluginManage:359 - Loaded plugin tutovideos (category:base,tabindex:-1)
+2025-09-20 00:18:08,792 [INFO] PluginManage:310 - Check plugin updater
+2025-09-20 00:18:08,984 [INFO] PluginManage:359 - Loaded plugin updater (category:base,tabindex:12)
+2025-09-20 00:18:08,985 [INFO] PluginManage:310 - Check plugin userauth
+2025-09-20 00:18:09,002 [INFO] UserAuth:118 - Init User Auth plugin
+2025-09-20 00:18:09,005 [INFO] PluginManage:359 - Loaded plugin userauth (category:base,tabindex:14)
+2025-09-20 00:18:09,007 [INFO] PluginManage:283 - PluginManage : Loaded plugins [18]
+2025-09-20 00:18:09,573 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 00:18:09,757 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 00:18:09,757 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 00:18:09,788 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,789 [INFO] PluginManager:220 - loadIPPluginJar : add gtzc
+2025-09-20 00:18:09,808 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,810 [INFO] PluginManager:220 - loadIPPluginJar : add usbx
+2025-09-20 00:18:09,814 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,815 [INFO] PluginManager:220 - loadIPPluginJar : add fatfs
+2025-09-20 00:18:09,822 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,822 [INFO] PluginManager:220 - loadIPPluginJar : add i2c
+2025-09-20 00:18:09,828 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,828 [INFO] PluginManager:220 - loadIPPluginJar : add tim
+2025-09-20 00:18:09,834 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,834 [INFO] PluginManager:220 - loadIPPluginJar : add quadspi
+2025-09-20 00:18:09,850 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,853 [INFO] PluginManager:220 - loadIPPluginJar : add ipddr
+2025-09-20 00:18:09,867 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,870 [INFO] PluginManager:220 - loadIPPluginJar : add i2s
+2025-09-20 00:18:09,883 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,884 [INFO] PluginManager:220 - loadIPPluginJar : add openamp
+2025-09-20 00:18:09,892 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,893 [INFO] PluginManager:220 - loadIPPluginJar : add i3c
+2025-09-20 00:18:09,897 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,897 [INFO] PluginManager:220 - loadIPPluginJar : add ucpd
+2025-09-20 00:18:09,903 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,903 [INFO] PluginManager:220 - loadIPPluginJar : add cryp
+2025-09-20 00:18:09,908 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,909 [INFO] PluginManager:220 - loadIPPluginJar : add comp
+2025-09-20 00:18:09,916 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,917 [INFO] PluginManager:220 - loadIPPluginJar : add spi
+2025-09-20 00:18:09,925 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,925 [INFO] PluginManager:220 - loadIPPluginJar : add touchsensing
+2025-09-20 00:18:09,932 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,932 [INFO] PluginManager:220 - loadIPPluginJar : add can
+2025-09-20 00:18:09,939 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,940 [INFO] PluginManager:220 - loadIPPluginJar : add aes
+2025-09-20 00:18:09,978 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,979 [INFO] PluginManager:220 - loadIPPluginJar : add adc
+2025-09-20 00:18:09,992 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:09,994 [INFO] PluginManager:220 - loadIPPluginJar : add nvic
+2025-09-20 00:18:10,018 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,019 [INFO] PluginManager:220 - loadIPPluginJar : add freertos
+2025-09-20 00:18:10,049 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,050 [INFO] PluginManager:220 - loadIPPluginJar : add dma
+2025-09-20 00:18:10,063 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,066 [INFO] PluginManager:220 - loadIPPluginJar : add resmgrutility
+2025-09-20 00:18:10,077 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,077 [INFO] PluginManager:220 - loadIPPluginJar : add pdm2pcm
+2025-09-20 00:18:10,089 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,093 [INFO] PluginManager:220 - loadIPPluginJar : add hash
+2025-09-20 00:18:10,106 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,107 [INFO] PluginManager:220 - loadIPPluginJar : add dfsdm
+2025-09-20 00:18:10,111 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,114 [INFO] PluginManager:220 - loadIPPluginJar : add radio
+2025-09-20 00:18:10,136 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,142 [INFO] PluginManager:220 - loadIPPluginJar : add plateformsettings
+2025-09-20 00:18:10,157 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,158 [INFO] PluginManager:220 - loadIPPluginJar : add gic
+2025-09-20 00:18:10,163 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,163 [INFO] PluginManager:220 - loadIPPluginJar : add ltdc
+2025-09-20 00:18:10,168 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,168 [INFO] PluginManager:220 - loadIPPluginJar : add tracer_emb
+2025-09-20 00:18:10,174 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,175 [INFO] PluginManager:220 - loadIPPluginJar : add lorawan
+2025-09-20 00:18:10,181 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,181 [INFO] PluginManager:220 - loadIPPluginJar : add tsc
+2025-09-20 00:18:10,188 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,189 [INFO] PluginManager:220 - loadIPPluginJar : add ts
+2025-09-20 00:18:10,194 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,194 [INFO] PluginManager:220 - loadIPPluginJar : add gfxmmu
+2025-09-20 00:18:10,201 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,203 [INFO] PluginManager:220 - loadIPPluginJar : add dma3
+2025-09-20 00:18:10,211 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,211 [INFO] PluginManager:220 - loadIPPluginJar : add ddr_ctrl_phy
+2025-09-20 00:18:10,216 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,217 [INFO] PluginManager:220 - loadIPPluginJar : add genericplugin
+2025-09-20 00:18:10,226 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,227 [INFO] PluginManager:220 - loadIPPluginJar : add opamp
+2025-09-20 00:18:10,270 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,271 [INFO] PluginManager:220 - loadIPPluginJar : add stm32_wpan
+2025-09-20 00:18:10,281 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,282 [INFO] PluginManager:220 - loadIPPluginJar : add usart
+2025-09-20 00:18:10,298 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,298 [INFO] PluginManager:220 - loadIPPluginJar : add sai
+2025-09-20 00:18:10,321 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,321 [INFO] PluginManager:220 - loadIPPluginJar : add linkedlist
+2025-09-20 00:18:10,328 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,329 [INFO] PluginManager:220 - loadIPPluginJar : add extmemmanager
+2025-09-20 00:18:10,347 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,347 [INFO] PluginManager:220 - loadIPPluginJar : add fmc
+2025-09-20 00:18:10,364 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,365 [INFO] PluginManager:220 - loadIPPluginJar : add gpio
+2025-09-20 00:18:10,390 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 00:18:10,392 [INFO] PluginManager:220 - loadIPPluginJar : add mdma
+2025-09-20 00:18:10,627 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:10,764 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 00:18:10,813 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 00:18:10,925 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 00:18:10,926 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 00:18:10,926 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:10,927 [ERROR] CADModel:125 - Updater not yet initialized, retry later
+2025-09-20 00:18:11,216 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [2/15]
+2025-09-20 00:18:11,529 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:11,558 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 00:18:11,565 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 00:18:11,566 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:11,566 [ERROR] CADModel:125 - Updater not yet initialized, retry later
+2025-09-20 00:18:11,605 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:12,162 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:12,177 [INFO] DbMcusAds:53 - JSON generation date=Tue Jul 08 03:14:23 CDT 2025 (1751962463524)
+2025-09-20 00:18:12,177 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:12,294 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
+2025-09-20 00:18:12,540 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:12,545 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:12,546 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:12,546 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
+2025-09-20 00:18:12,550 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 00:18:12,670 [ERROR] Updater:1198 - MainUpdater not yet initialized. External WinMGr cannot be set.
+2025-09-20 00:18:12,674 [INFO] Updater:1134 - Updater Version found : 6.15.0
+2025-09-20 00:18:12,733 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 00:18:13,880 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 00:18:13,881 [INFO] MainUpdater:289 - Updater Check For Update Now.
+2025-09-20 00:18:13,881 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 00:18:13,891 [INFO] McuFinderGlobals:63 - Set McuFinder mode to 2 (CubeIDE integrated)
+2025-09-20 00:18:13,894 [INFO] UserAuth:487 - Internet connection configuration mode: 1
+2025-09-20 00:18:13,963 [INFO] JxBrowserEngine:152 - Initiate JxBrowser Engine with user profile folder
+2025-09-20 00:18:14,221 [WARN] MainUpdater:1193 - Updater busy. Cannot search thirdparties
+2025-09-20 00:18:14,222 [INFO] ThirdPartyUpdaterWithRetryManager:96 - Updater plugin is busy. [1/15]
+2025-09-20 00:18:14,365 [INFO] CheckServerUpdateThread:120 - End of CheckServer Thread
+2025-09-20 00:18:16,311 [INFO] WebApp:169 - Instantiating new browser for Auth
+2025-09-20 00:18:17,881 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENVWB1.1.4.0
+2025-09-20 00:18:17,940 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-ASTRA1.2.0.2
+2025-09-20 00:18:17,967 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SMBUS.2.1.0
+2025-09-20 00:18:17,989 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST60.1.0.0
+2025-09-20 00:18:18,194 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F7.1.1.0
+2025-09-20 00:18:18,236 [WARN] PackLoader:240 - Cannot read IP mode file for WES.I-CUBE-Cesium.1.4.0
+2025-09-20 00:18:18,449 [WARN] PackLoader:240 - Cannot read IP mode file for Infineon.AIROC-Wi-Fi-Bluetooth-STM32.1.7.1
+2025-09-20 00:18:18,610 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7.3.4.0
+2025-09-20 00:18:18,654 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DISPLAY.3.0.0
+2025-09-20 00:18:18,710 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC10.1.0.0
+2025-09-20 00:18:18,742 [WARN] PackLoader:240 - Cannot read IP mode file for emotas.I-CUBE-CANOPEN.1.3.0
+2025-09-20 00:18:18,791 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STBOX1.2.1.0
+2025-09-20 00:18:18,825 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-SMARTAG2.1.2.0
+2025-09-20 00:18:18,846 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-FLIGHT1.5.1.0
+2025-09-20 00:18:18,923 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 00:18:18,929 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 00:18:18,930 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 00:18:18,931 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 00:18:18,932 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 00:18:18,951 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WL.2.0.0
+2025-09-20 00:18:18,968 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENV1.5.0.0
+2025-09-20 00:18:19,000 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE2.3.3.0
+2025-09-20 00:18:19,024 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC9.1.0.0
+2025-09-20 00:18:19,050 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSL.5.8.2
+2025-09-20 00:18:19,071 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE1.7.1.0
+2025-09-20 00:18:19,100 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfMQTT.1.19.2
+2025-09-20 00:18:19,171 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-EEPRMA1.5.2.0
+2025-09-20 00:18:19,290 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G0.1.1.0
+2025-09-20 00:18:19,317 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SAFEA1.1.2.2
+2025-09-20 00:18:19,341 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC4.3.0.0
+2025-09-20 00:18:19,440 [WARN] PackLoader:240 - Cannot read IP mode file for EmbeddedOffice.I-CUBE-FS-RTOS.1.0.1
+2025-09-20 00:18:19,492 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-WB05N.2.0.0
+2025-09-20 00:18:19,572 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfTPM.3.8.0
+2025-09-20 00:18:19,634 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TCPP.4.2.0
+2025-09-20 00:18:19,688 [WARN] PackLoader:240 - Cannot read IP mode file for RealThread.X-CUBE-RT-Thread_Nano.4.1.1
+2025-09-20 00:18:19,714 [INFO] WebApp:463 - Apply proxy settings
+2025-09-20 00:18:19,716 [INFO] WebApp:548 - Chromium requires no authentication
+2025-09-20 00:18:19,722 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-SIGFOX1.3.2.0
+2025-09-20 00:18:19,765 [WARN] PackLoader:240 - Cannot read IP mode file for ITTIA_DB.I-CUBE-ITTIADB.8.9.0
+2025-09-20 00:18:19,766 [INFO] WebApp:491 - Direct internet connection detected
+2025-09-20 00:18:19,798 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST67W61.1.0.0
+2025-09-20 00:18:19,822 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AI.10.2.0
+2025-09-20 00:18:19,865 [INFO] WebApp:900 - Register for checkConnection events
+2025-09-20 00:18:19,866 [INFO] WebApp:463 - Apply proxy settings
+2025-09-20 00:18:19,866 [INFO] WebApp:548 - Chromium requires no authentication
+2025-09-20 00:18:19,868 [INFO] WebApp:491 - Direct internet connection detected
+2025-09-20 00:18:19,986 [WARN] PackLoader:240 - Cannot read IP mode file for SEGGER.I-CUBE-embOS.1.3.1
+2025-09-20 00:18:20,190 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALGOBUILD.1.4.0
+2025-09-20 00:18:20,440 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-MEMS1.11.3.0
+2025-09-20 00:18:20,500 [INFO] WebApp:225 - Starting web application
+2025-09-20 00:18:20,500 [INFO] WebApp:593 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient1/index.html
+2025-09-20 00:18:21,099 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-PM33A1.1.0.0
+2025-09-20 00:18:21,116 [INFO] WebApp:191 - Connection restablished
+2025-09-20 00:18:21,195 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F4.1.1.0
+2025-09-20 00:18:21,213 [WARN] PackLoader:240 - Cannot read IP mode file for Avnet-IotConnect.X-CUBE-IoTC-DA16k-PMOD.1.0.0
+2025-09-20 00:18:21,223 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ISPU.2.1.0
+2025-09-20 00:18:21,249 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC12.1.0.0
+2025-09-20 00:18:21,325 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L5.2.0.0
+2025-09-20 00:18:21,362 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC6.3.1.0
+2025-09-20 00:18:21,383 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-FREERTOS.1.3.1
+2025-09-20 00:18:21,415 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STAIOTCFT.1.0.0
+2025-09-20 00:18:21,533 [INFO] UserAuth:487 - Internet connection configuration mode: 1
+2025-09-20 00:18:21,548 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DPower.1.3.0
+2025-09-20 00:18:21,751 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 00:18:21,762 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L4.2.0.0
+2025-09-20 00:18:21,782 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 00:18:21,783 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 00:18:21,793 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 00:18:21,858 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SFXS2LP1.4.0.0
+2025-09-20 00:18:21,999 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLEMGR.4.1.0
+2025-09-20 00:18:22,204 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 00:18:22,206 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 00:18:22,230 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WB.2.0.0
+2025-09-20 00:18:22,234 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 00:18:22,237 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 00:18:22,241 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 00:18:22,242 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 00:18:22,242 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 00:18:22,288 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-GNSS1.7.0.1
+2025-09-20 00:18:22,315 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOUCHGFX.4.25.0
+2025-09-20 00:18:22,323 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : Cortex-A Device cause : null
+2025-09-20 00:18:22,361 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 00:18:22,362 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 00:18:22,364 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 00:18:22,405 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SUBG2.5.0.0
+2025-09-20 00:18:22,522 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7RS.1.1.0
+2025-09-20 00:18:22,540 [WARN] PackLoader:240 - Cannot read IP mode file for Cesanta.I-CUBE-Mongoose.7.13.0
+2025-09-20 00:18:22,670 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G4.2.0.0
+2025-09-20 00:18:22,686 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSH.1.4.20
+2025-09-20 00:18:22,700 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC7.2.0.0
+2025-09-20 00:18:22,751 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-IPS.3.1.0
+2025-09-20 00:18:22,782 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALS.1.0.2
+2025-09-20 00:18:22,827 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-STSE01.1.0.0
+2025-09-20 00:18:22,857 [WARN] PackLoader:240 - Cannot read IP mode file for portGmbH.I-Cube-SoM-uGOAL.1.1.0
+2025-09-20 00:18:22,909 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOF1.3.4.3
+2025-09-20 00:18:22,981 [INFO] ThirdParty:978 - Integrity check success = true
+2025-09-20 00:18:22,983 [INFO] IntegrityCheckThread:100 - exiting critical section [integrity check]
+2025-09-20 00:18:22,983 [INFO] IntegrityCheckThread:103 - End integrity checks thread
+2025-09-20 00:28:55,985 [ERROR] LogOutputStream:75 - [STDERR_REDIRECT]
+2025-09-20 02:01:19,323 [INFO] Activator:176 -
+
+
+2025-09-20 02:01:19,326 [INFO] Activator:177 - !SESSION log4j initialized
+2025-09-20 02:01:29,979 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT]
+2025-09-20 02:01:34,491 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 02:01:34,519 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 02:01:34,519 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 02:01:34,520 [WARN] ApiDb:259 - Overriding images path with different value: => /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 02:01:34,525 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 02:01:34,527 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 02:01:34,530 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 02:01:34,757 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 02:01:34,903 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 02:01:34,903 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 02:01:34,903 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 02:01:34,904 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 02:01:34,904 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 02:01:34,904 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 02:01:34,904 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 02:01:34,904 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 02:01:34,905 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 02:01:34,905 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 02:01:35,033 [INFO] MainPanel:274 - HeapMemory: 268435456
+2025-09-20 02:01:35,440 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 02:01:35,441 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 02:01:35,441 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 02:01:35,442 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 02:01:35,442 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 02:01:35,442 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 02:01:35,443 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 02:01:35,443 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 02:01:35,443 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 02:01:35,443 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 02:01:35,480 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 02:01:35,483 [INFO] PluginManage:196 - Search for loadable plugins [exclusion list=, ]
+2025-09-20 02:01:35,487 [INFO] PluginManage:310 - Check plugin analytics
+2025-09-20 02:01:36,187 [INFO] AnalyticsPlugin:253 - Accepted Software Licenses: STM32CubeMX.6.15.0
+2025-09-20 02:01:36,187 [INFO] AnalyticsPlugin:255 - Accepted CMSIS Pack Licenses:
+2025-09-20 02:01:36,188 [INFO] AnalyticsPlugin:257 - Accepted Firmware Licenses: FW.F4.1.28.0
+2025-09-20 02:01:36,204 [INFO] PluginManage:359 - Loaded plugin analytics (category:tool,tabindex:-1)
+2025-09-20 02:01:36,211 [INFO] PluginManage:310 - Check plugin cadmodel
+2025-09-20 02:01:36,229 [INFO] CADModel:105 - Init CAD model plugin
+2025-09-20 02:01:36,229 [INFO] PluginManage:359 - Loaded plugin cadmodel (category:power,tabindex:5)
+2025-09-20 02:01:36,230 [INFO] PluginManage:310 - Check plugin clock
+2025-09-20 02:01:36,264 [INFO] PluginManage:359 - Loaded plugin clock (category:base,tabindex:2)
+2025-09-20 02:01:36,265 [INFO] PluginManage:310 - Check plugin ddr
+2025-09-20 02:01:36,271 [INFO] PluginManage:359 - Loaded plugin ddr (category:tool,tabindex:6)
+2025-09-20 02:01:36,273 [INFO] PluginManage:310 - Check plugin filemanager
+2025-09-20 02:01:36,733 [INFO] PluginManage:359 - Loaded plugin filemanager (category:base,tabindex:10)
+2025-09-20 02:01:36,734 [INFO] PluginManage:310 - Check plugin ipmanager
+2025-09-20 02:01:36,755 [INFO] PluginManage:359 - Loaded plugin ipmanager (category:base,tabindex:5)
+2025-09-20 02:01:36,756 [INFO] PluginManage:310 - Check plugin lpbam
+2025-09-20 02:01:36,776 [INFO] PluginManage:359 - Loaded plugin lpbam (category:base,tabindex:0)
+2025-09-20 02:01:36,776 [INFO] PluginManage:310 - Check plugin memorymap
+2025-09-20 02:01:36,805 [INFO] PluginManage:359 - Loaded plugin memorymap (category:base,tabindex:4)
+2025-09-20 02:01:36,805 [INFO] PluginManage:310 - Check plugin pinoutandconfiguration
+2025-09-20 02:01:36,837 [INFO] PluginManage:359 - Loaded plugin pinoutandconfiguration (category:base,tabindex:1)
+2025-09-20 02:01:36,840 [INFO] PluginManage:310 - Check plugin pinoutconfig
+2025-09-20 02:01:37,068 [WARN] SupportedApi:132 - Cannot load RTOS API schema: s4s-elt-must-match.1: The content of 'definitions' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.
+2025-09-20 02:01:37,335 [INFO] PluginManage:359 - Loaded plugin pinoutconfig (category:base,tabindex:0)
+2025-09-20 02:01:37,335 [INFO] PluginManage:310 - Check plugin power
+2025-09-20 02:01:37,351 [INFO] PluginManage:359 - Loaded plugin power (category:power,tabindex:4)
+2025-09-20 02:01:37,352 [INFO] PluginManage:310 - Check plugin projectmanager
+2025-09-20 02:01:37,387 [INFO] PluginManage:359 - Loaded plugin projectmanager (category:projectmanager,tabindex:4)
+2025-09-20 02:01:37,387 [INFO] PluginManage:310 - Check plugin rif
+2025-09-20 02:01:37,404 [INFO] PluginManage:359 - Loaded plugin rif (category:base,tabindex:3)
+2025-09-20 02:01:37,405 [INFO] PluginManage:310 - Check plugin thirdparty
+2025-09-20 02:01:37,639 [INFO] PluginManage:359 - Loaded plugin thirdparty (category:base,tabindex:-1)
+2025-09-20 02:01:37,638 [WARN] IntegrityCheckThread:84 - waiting for thirdparty lock release [integrity check]
+2025-09-20 02:01:37,639 [INFO] PluginManage:310 - Check plugin tools
+2025-09-20 02:01:37,639 [INFO] IntegrityCheckThread:86 - entering critical section [integrity check]
+2025-09-20 02:01:37,640 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [1/15]
+2025-09-20 02:01:37,643 [INFO] PluginManage:359 - Loaded plugin tools (category:base,tabindex:7)
+2025-09-20 02:01:37,643 [INFO] PluginManage:310 - Check plugin tutovideos
+2025-09-20 02:01:37,977 [INFO] PluginManage:359 - Loaded plugin tutovideos (category:base,tabindex:-1)
+2025-09-20 02:01:37,977 [INFO] PluginManage:310 - Check plugin updater
+2025-09-20 02:01:38,014 [INFO] PluginManage:359 - Loaded plugin updater (category:base,tabindex:12)
+2025-09-20 02:01:38,014 [INFO] PluginManage:310 - Check plugin userauth
+2025-09-20 02:01:38,021 [INFO] UserAuth:118 - Init User Auth plugin
+2025-09-20 02:01:38,024 [INFO] PluginManage:359 - Loaded plugin userauth (category:base,tabindex:14)
+2025-09-20 02:01:38,025 [INFO] PluginManage:283 - PluginManage : Loaded plugins [18]
+2025-09-20 02:01:38,300 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 02:01:38,407 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 02:01:38,407 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 02:01:38,425 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,426 [INFO] PluginManager:220 - loadIPPluginJar : add gtzc
+2025-09-20 02:01:38,434 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,434 [INFO] PluginManager:220 - loadIPPluginJar : add usbx
+2025-09-20 02:01:38,436 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,436 [INFO] PluginManager:220 - loadIPPluginJar : add fatfs
+2025-09-20 02:01:38,440 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,441 [INFO] PluginManager:220 - loadIPPluginJar : add i2c
+2025-09-20 02:01:38,443 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,443 [INFO] PluginManager:220 - loadIPPluginJar : add tim
+2025-09-20 02:01:38,445 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,445 [INFO] PluginManager:220 - loadIPPluginJar : add quadspi
+2025-09-20 02:01:38,450 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,450 [INFO] PluginManager:220 - loadIPPluginJar : add ipddr
+2025-09-20 02:01:38,456 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,456 [INFO] PluginManager:220 - loadIPPluginJar : add i2s
+2025-09-20 02:01:38,461 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,462 [INFO] PluginManager:220 - loadIPPluginJar : add openamp
+2025-09-20 02:01:38,465 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,465 [INFO] PluginManager:220 - loadIPPluginJar : add i3c
+2025-09-20 02:01:38,468 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,468 [INFO] PluginManager:220 - loadIPPluginJar : add ucpd
+2025-09-20 02:01:38,471 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,471 [INFO] PluginManager:220 - loadIPPluginJar : add cryp
+2025-09-20 02:01:38,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,474 [INFO] PluginManager:220 - loadIPPluginJar : add comp
+2025-09-20 02:01:38,477 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,477 [INFO] PluginManager:220 - loadIPPluginJar : add spi
+2025-09-20 02:01:38,482 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,483 [INFO] PluginManager:220 - loadIPPluginJar : add touchsensing
+2025-09-20 02:01:38,488 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,488 [INFO] PluginManager:220 - loadIPPluginJar : add can
+2025-09-20 02:01:38,493 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,493 [INFO] PluginManager:220 - loadIPPluginJar : add aes
+2025-09-20 02:01:38,505 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,505 [INFO] PluginManager:220 - loadIPPluginJar : add adc
+2025-09-20 02:01:38,510 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,511 [INFO] PluginManager:220 - loadIPPluginJar : add nvic
+2025-09-20 02:01:38,519 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,520 [INFO] PluginManager:220 - loadIPPluginJar : add freertos
+2025-09-20 02:01:38,531 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,532 [INFO] PluginManager:220 - loadIPPluginJar : add dma
+2025-09-20 02:01:38,536 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,536 [INFO] PluginManager:220 - loadIPPluginJar : add resmgrutility
+2025-09-20 02:01:38,540 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,541 [INFO] PluginManager:220 - loadIPPluginJar : add pdm2pcm
+2025-09-20 02:01:38,544 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,544 [INFO] PluginManager:220 - loadIPPluginJar : add hash
+2025-09-20 02:01:38,547 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,548 [INFO] PluginManager:220 - loadIPPluginJar : add dfsdm
+2025-09-20 02:01:38,550 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,551 [INFO] PluginManager:220 - loadIPPluginJar : add radio
+2025-09-20 02:01:38,563 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,568 [INFO] PluginManager:220 - loadIPPluginJar : add plateformsettings
+2025-09-20 02:01:38,576 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,576 [INFO] PluginManager:220 - loadIPPluginJar : add gic
+2025-09-20 02:01:38,578 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,578 [INFO] PluginManager:220 - loadIPPluginJar : add ltdc
+2025-09-20 02:01:38,580 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,581 [INFO] PluginManager:220 - loadIPPluginJar : add tracer_emb
+2025-09-20 02:01:38,585 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,585 [INFO] PluginManager:220 - loadIPPluginJar : add lorawan
+2025-09-20 02:01:38,588 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,589 [INFO] PluginManager:220 - loadIPPluginJar : add tsc
+2025-09-20 02:01:38,592 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,593 [INFO] PluginManager:220 - loadIPPluginJar : add ts
+2025-09-20 02:01:38,595 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,595 [INFO] PluginManager:220 - loadIPPluginJar : add gfxmmu
+2025-09-20 02:01:38,598 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,599 [INFO] PluginManager:220 - loadIPPluginJar : add dma3
+2025-09-20 02:01:38,602 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,602 [INFO] PluginManager:220 - loadIPPluginJar : add ddr_ctrl_phy
+2025-09-20 02:01:38,604 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,605 [INFO] PluginManager:220 - loadIPPluginJar : add genericplugin
+2025-09-20 02:01:38,608 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,609 [INFO] PluginManager:220 - loadIPPluginJar : add opamp
+2025-09-20 02:01:38,620 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,621 [INFO] PluginManager:220 - loadIPPluginJar : add stm32_wpan
+2025-09-20 02:01:38,626 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,627 [INFO] PluginManager:220 - loadIPPluginJar : add usart
+2025-09-20 02:01:38,631 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,631 [INFO] PluginManager:220 - loadIPPluginJar : add sai
+2025-09-20 02:01:38,642 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,643 [INFO] PluginManager:220 - loadIPPluginJar : add linkedlist
+2025-09-20 02:01:38,647 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,647 [INFO] PluginManager:220 - loadIPPluginJar : add extmemmanager
+2025-09-20 02:01:38,656 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,657 [INFO] PluginManager:220 - loadIPPluginJar : add fmc
+2025-09-20 02:01:38,664 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,664 [INFO] PluginManager:220 - loadIPPluginJar : add gpio
+2025-09-20 02:01:38,674 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:01:38,674 [INFO] PluginManager:220 - loadIPPluginJar : add mdma
+2025-09-20 02:01:38,813 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:38,875 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 02:01:38,906 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 02:01:38,926 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 02:01:38,927 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 02:01:38,927 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:38,927 [ERROR] CADModel:125 - Updater not yet initialized, retry later
+2025-09-20 02:01:39,268 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:39,271 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 02:01:39,271 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 02:01:39,272 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:39,272 [ERROR] CADModel:125 - Updater not yet initialized, retry later
+2025-09-20 02:01:39,280 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:39,649 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:39,663 [INFO] DbMcusAds:53 - JSON generation date=Tue Jul 08 03:14:23 CDT 2025 (1751962463524)
+2025-09-20 02:01:39,663 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:39,743 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
+2025-09-20 02:01:39,904 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:39,907 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:39,907 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:39,907 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
+2025-09-20 02:01:39,909 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 02:01:39,978 [ERROR] Updater:1198 - MainUpdater not yet initialized. External WinMGr cannot be set.
+2025-09-20 02:01:39,981 [INFO] Updater:1134 - Updater Version found : 6.15.0
+2025-09-20 02:01:40,011 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 02:01:40,640 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [2/15]
+2025-09-20 02:01:40,942 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 02:01:40,943 [INFO] MainUpdater:289 - Updater Check For Update Now.
+2025-09-20 02:01:40,943 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 02:01:40,951 [INFO] McuFinderGlobals:63 - Set McuFinder mode to 2 (CubeIDE integrated)
+2025-09-20 02:01:40,952 [INFO] UserAuth:487 - Internet connection configuration mode: 1
+2025-09-20 02:01:40,982 [INFO] JxBrowserEngine:152 - Initiate JxBrowser Engine with user profile folder
+2025-09-20 02:01:41,258 [INFO] CheckServerUpdateThread:120 - End of CheckServer Thread
+2025-09-20 02:01:42,340 [INFO] WebApp:169 - Instantiating new browser for Auth
+2025-09-20 02:01:44,133 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENVWB1.1.4.0
+2025-09-20 02:01:44,181 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-ASTRA1.2.0.2
+2025-09-20 02:01:44,214 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SMBUS.2.1.0
+2025-09-20 02:01:44,229 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST60.1.0.0
+2025-09-20 02:01:44,387 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F7.1.1.0
+2025-09-20 02:01:44,458 [WARN] PackLoader:240 - Cannot read IP mode file for WES.I-CUBE-Cesium.1.4.0
+2025-09-20 02:01:44,561 [WARN] PackLoader:240 - Cannot read IP mode file for Infineon.AIROC-Wi-Fi-Bluetooth-STM32.1.7.1
+2025-09-20 02:01:44,738 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7.3.4.0
+2025-09-20 02:01:44,797 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DISPLAY.3.0.0
+2025-09-20 02:01:44,839 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC10.1.0.0
+2025-09-20 02:01:44,871 [WARN] PackLoader:240 - Cannot read IP mode file for emotas.I-CUBE-CANOPEN.1.3.0
+2025-09-20 02:01:44,914 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STBOX1.2.1.0
+2025-09-20 02:01:44,948 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-SMARTAG2.1.2.0
+2025-09-20 02:01:44,958 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-FLIGHT1.5.1.0
+2025-09-20 02:01:44,988 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 02:01:44,991 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 02:01:44,992 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 02:01:44,992 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 02:01:44,993 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 02:01:45,005 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WL.2.0.0
+2025-09-20 02:01:45,185 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENV1.5.0.0
+2025-09-20 02:01:45,207 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE2.3.3.0
+2025-09-20 02:01:45,226 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC9.1.0.0
+2025-09-20 02:01:45,245 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSL.5.8.2
+2025-09-20 02:01:45,256 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE1.7.1.0
+2025-09-20 02:01:45,261 [INFO] WebApp:463 - Apply proxy settings
+2025-09-20 02:01:45,263 [INFO] WebApp:548 - Chromium requires no authentication
+2025-09-20 02:01:45,264 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfMQTT.1.19.2
+2025-09-20 02:01:45,281 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-EEPRMA1.5.2.0
+2025-09-20 02:01:45,314 [INFO] WebApp:491 - Direct internet connection detected
+2025-09-20 02:01:45,345 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G0.1.1.0
+2025-09-20 02:01:45,376 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SAFEA1.1.2.2
+2025-09-20 02:01:45,405 [INFO] WebApp:900 - Register for checkConnection events
+2025-09-20 02:01:45,406 [INFO] WebApp:463 - Apply proxy settings
+2025-09-20 02:01:45,406 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC4.3.0.0
+2025-09-20 02:01:45,406 [INFO] WebApp:548 - Chromium requires no authentication
+2025-09-20 02:01:45,407 [INFO] WebApp:491 - Direct internet connection detected
+2025-09-20 02:01:45,444 [WARN] PackLoader:240 - Cannot read IP mode file for EmbeddedOffice.I-CUBE-FS-RTOS.1.0.1
+2025-09-20 02:01:45,459 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-WB05N.2.0.0
+2025-09-20 02:01:45,470 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfTPM.3.8.0
+2025-09-20 02:01:45,485 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TCPP.4.2.0
+2025-09-20 02:01:45,500 [WARN] PackLoader:240 - Cannot read IP mode file for RealThread.X-CUBE-RT-Thread_Nano.4.1.1
+2025-09-20 02:01:45,507 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-SIGFOX1.3.2.0
+2025-09-20 02:01:45,517 [WARN] PackLoader:240 - Cannot read IP mode file for ITTIA_DB.I-CUBE-ITTIADB.8.9.0
+2025-09-20 02:01:45,531 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST67W61.1.0.0
+2025-09-20 02:01:45,543 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AI.10.2.0
+2025-09-20 02:01:45,618 [WARN] PackLoader:240 - Cannot read IP mode file for SEGGER.I-CUBE-embOS.1.3.1
+2025-09-20 02:01:45,842 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALGOBUILD.1.4.0
+2025-09-20 02:01:46,193 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-MEMS1.11.3.0
+2025-09-20 02:01:46,341 [INFO] WebApp:225 - Starting web application
+2025-09-20 02:01:46,342 [INFO] WebApp:593 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient1/index.html
+2025-09-20 02:01:46,427 [INFO] WebApp:191 - Connection restablished
+2025-09-20 02:01:47,072 [INFO] UserAuth:487 - Internet connection configuration mode: 1
+2025-09-20 02:01:47,279 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-PM33A1.1.0.0
+2025-09-20 02:01:47,330 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F4.1.1.0
+2025-09-20 02:01:47,352 [WARN] PackLoader:240 - Cannot read IP mode file for Avnet-IotConnect.X-CUBE-IoTC-DA16k-PMOD.1.0.0
+2025-09-20 02:01:47,377 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ISPU.2.1.0
+2025-09-20 02:01:47,398 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC12.1.0.0
+2025-09-20 02:01:47,515 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L5.2.0.0
+2025-09-20 02:01:47,564 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC6.3.1.0
+2025-09-20 02:01:47,603 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-FREERTOS.1.3.1
+2025-09-20 02:01:47,616 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STAIOTCFT.1.0.0
+2025-09-20 02:01:47,632 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DPower.1.3.0
+2025-09-20 02:01:47,689 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 02:01:47,691 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L4.2.0.0
+2025-09-20 02:01:47,695 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 02:01:47,696 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 02:01:47,698 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 02:01:47,718 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SFXS2LP1.4.0.0
+2025-09-20 02:01:47,754 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLEMGR.4.1.0
+2025-09-20 02:01:47,792 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 02:01:47,792 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 02:01:47,799 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WB.2.0.0
+2025-09-20 02:01:47,800 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 02:01:47,801 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 02:01:47,803 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 02:01:47,805 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 02:01:47,805 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 02:01:47,818 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-GNSS1.7.0.1
+2025-09-20 02:01:47,834 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOUCHGFX.4.25.0
+2025-09-20 02:01:47,843 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : Cortex-A Device cause : null
+2025-09-20 02:01:47,884 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 02:01:47,884 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 02:01:47,885 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 02:01:47,913 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SUBG2.5.0.0
+2025-09-20 02:01:47,982 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7RS.1.1.0
+2025-09-20 02:01:47,996 [WARN] PackLoader:240 - Cannot read IP mode file for Cesanta.I-CUBE-Mongoose.7.13.0
+2025-09-20 02:01:48,036 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G4.2.0.0
+2025-09-20 02:01:48,047 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSH.1.4.20
+2025-09-20 02:01:48,113 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC7.2.0.0
+2025-09-20 02:01:48,162 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-IPS.3.1.0
+2025-09-20 02:01:48,187 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALS.1.0.2
+2025-09-20 02:01:48,200 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-STSE01.1.0.0
+2025-09-20 02:01:48,214 [WARN] PackLoader:240 - Cannot read IP mode file for portGmbH.I-Cube-SoM-uGOAL.1.1.0
+2025-09-20 02:01:48,242 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOF1.3.4.3
+2025-09-20 02:01:48,277 [INFO] ThirdParty:978 - Integrity check success = true
+2025-09-20 02:01:48,278 [INFO] IntegrityCheckThread:100 - exiting critical section [integrity check]
+2025-09-20 02:01:48,278 [INFO] IntegrityCheckThread:103 - End integrity checks thread
+2025-09-20 02:03:14,349 [INFO] McuFinderGlobals:63 - Set McuFinder mode to 2 (CubeIDE integrated)
+2025-09-20 02:03:14,354 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 02:03:14,354 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 02:03:14,411 [INFO] MicroXplorer:468 - Change Database Path :
+2025-09-20 02:03:14,412 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 02:03:14,424 [WARN] ThirdParty:871 - waiting for thirdparty lock release [close project]
+2025-09-20 02:03:14,424 [INFO] ThirdParty:873 - entering critical section [close project]
+2025-09-20 02:03:14,427 [INFO] ThirdParty:883 - exiting critical section [close project]
+2025-09-20 02:03:14,434 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 02:03:14,438 [INFO] UtilMem:75 - Begin LoadConfig() Used Memory: 520691672 Bytes (655360000)
+2025-09-20 02:03:14,442 [INFO] MicroXplorer:468 - Change Database Path :
+2025-09-20 02:03:14,443 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 02:03:14,443 [INFO] OpenFileManager:355 - Change cursor
+2025-09-20 02:03:14,500 [INFO] Mcu:2029 - Initializing MCU STM32F429ZITx STM32F429ZITx STM32F429ZIT6
+2025-09-20 02:03:22,938 [INFO] Context:786 - Trying to add GPIOservice into a context which must be forbidden
+2025-09-20 02:03:25,714 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) Pin98 (VP_RIF_VS_RIF1) cannot be retrieved for this MCU
+2025-09-20 02:03:26,345 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS, mode=CMSIS_V1, owner=FREERTOS
+2025-09-20 02:03:26,345 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS2, mode=CMSIS_V2, owner=FREERTOS
+2025-09-20 02:03:26,346 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V1, owner=FREERTOS
+2025-09-20 02:03:26,346 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V2, owner=FREERTOS
+2025-09-20 02:03:26,347 [WARN] ModelIntegratedComponent:184 - Missing modes for component STMicroelectronics:FreeRTOS:0.0.1:STMicroelectronics:RTOS:FreeRTOS:Core:::10.2.0:
+2025-09-20 02:03:26,472 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,472 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,473 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,473 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,473 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,473 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,473 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,476 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,476 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,476 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,479 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,479 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,479 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,480 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,480 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,480 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,480 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,480 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,481 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,484 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,484 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,487 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,487 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,488 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,488 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,488 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,488 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,489 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,489 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,489 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,489 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,490 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,490 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,490 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,490 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:03:26,491 [WARN] ModelPack:524 - Component already loaded: STMicroelectronics:HAL Drivers:0.0.0:STMicroelectronics:Device:STMicro_Driver:XSPI:HAL::0.0.1:HAL_XSPI
+2025-09-20 02:03:27,037 [INFO] ThirdPartyModel:298 - Start build external matchings
+2025-09-20 02:03:28,578 [INFO] ThirdPartyModel:316 - End build external matchings
+2025-09-20 02:03:28,617 [INFO] RtosManager:1018 - Current active RTOS is FREERTOS [Cortex-M4NS]
+2025-09-20 02:03:28,646 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:03:28,649 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Invalid parameter (FamilyName)
+2025-09-20 02:03:28,651 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Parameter (RTCHSEDivFreq_Value) has invalid value (4000000)
+2025-09-20 02:03:29,571 [INFO] ApiDb:581 - Connected to CubeFinder SQLite database (/home/ja/.stmcufinder/plugins/mcufinder/mcu/cube-finder-db.db)
+2025-09-20 02:03:29,751 [INFO] ApiDb:668 - CubeFinder database Data Model version=2.1
+2025-09-20 02:03:29,752 [INFO] ApiDb:669 - CubeFinder database Configuration version=3.0.39
+2025-09-20 02:03:29,752 [INFO] ApiDb:670 - CubeFinder database generation date=2025-08-25 (1756130511)
+2025-09-20 02:03:29,753 [INFO] ApiDb:671 - CubeFinder database FW Pack versions=[FP-ATR-ASTRA1_V2.0.0, FP-SNS-FLIGHT1_V5.1.0, FP-SNS-MOTENV1_V5.0.0, FP-SNS-MOTENVWB1_V1.4.0, FP-SNS-SMARTAG2_V1.2.0, FP-SNS-STBOX1_V2.1.0, STM32Cube_FW_C0_V1.4.0, STM32Cube_FW_F4_V1.28.3, STM32Cube_FW_F7_V1.17.4, STM32Cube_FW_G0_V1.6.2, STM32Cube_FW_G4_V1.6.1, STM32Cube_FW_H5_V1.5.0, STM32Cube_FW_H7RS_V1.2.0, STM32Cube_FW_H7_V1.12.1, STM32Cube_FW_L0_V1.12.2, STM32Cube_FW_L4_V1.18.1, STM32Cube_FW_L5_V1.5.1, STM32Cube_FW_N6_V1.2.0, STM32Cube_FW_U0_V1.3.0, STM32Cube_FW_U3_V1.2.0, STM32Cube_FW_U5_V1.8.0, STM32Cube_FW_WB0_V1.3.0, STM32Cube_FW_WBA_V1.7.0, STM32Cube_FW_WB_V1.23.0, STM32Cube_FW_WL3_V1.2.0, STM32Cube_FW_WL_V1.3.1, X-CUBE-ALGOBUILD_V1.4.0, X-CUBE-ALS_V1.0.2, X-CUBE-AZRTOS-F4_V1.1.0, X-CUBE-AZRTOS-F7_V1.1.0, X-CUBE-AZRTOS-G0_V1.1.0, X-CUBE-AZRTOS-G4_V2.0.0, X-CUBE-AZRTOS-H7RS_V1.1.0, X-CUBE-AZRTOS-H7_V3.4.0, X-CUBE-AZRTOS-L4_V2.0.0, X-CUBE-AZRTOS-L5_V2.0.0, X-CUBE-AZRTOS-WB_V2.0.0, X-CUBE-AZRTOS-WL_V2.0.0, X-CUBE-BLE1_V7.1.0, X-CUBE-BLE2_V3.3.0, X-CUBE-BLEMGR_V4.1.0, X-CUBE-EEPRMA1_V5.2.0, X-CUBE-FREERTOS_V1.3.1, X-CUBE-GNSS1_V6.0.0, X-CUBE-MEMS1_V11.3.0, X-CUBE-NFC4_V3.0.0, X-CUBE-NFC7_V2.0.0, X-CUBE-SFXS2LP1_V4.0.0, X-CUBE-ST67W61_V1.0.0, X-CUBE-SUBG2_V5.0.0, X-CUBE-TOF1_V3.4.3]
+2025-09-20 02:03:29,999 [INFO] DbBoardsSqlite:226 - include board P-NUCLEO-WB55-NUCLEO as a kit item of type 'Nucleo-64'
+2025-09-20 02:03:30,000 [INFO] DbBoardsSqlite:226 - include board P-NUCLEO-WB55-USBDONGLE as a kit item of type 'Nucleo USB Dongle'
+2025-09-20 02:03:30,001 [INFO] DbBoardsSqlite:226 - include board STEVAL-IDP005V1 as a kit item of type 'Evaluation Board'
+2025-09-20 02:03:30,002 [INFO] DbBoardsSqlite:226 - include board STEVAL-IDP005V2 as a kit item of type 'Evaluation Board'
+2025-09-20 02:03:30,232 [INFO] ApiDb:240 - Found 880 in-development CPN: [B-G473E-ZEST1S, B-WB1M-WPAN1, B-WBA5M-WPAN, B-WL5M-SUBG1, NUCLEO-C031C6, NUCLEO-C051C8, NUCLEO-C071RB, NUCLEO-C092RC, NUCLEO-H503RB, NUCLEO-H533RE, NUCLEO-H563ZI, NUCLEO-H7S3L8, NUCLEO-N657X0-Q, NUCLEO-U031R8, NUCLEO-U083RC, NUCLEO-U385RG-Q, NUCLEO-U545RE-Q, NUCLEO-U5A5ZJ-Q, NUCLEO-WB05KZ, NUCLEO-WB07CC, NUCLEO-WB09KE, NUCLEO-WBA52CG, NUCLEO-WBA55CG, NUCLEO-WL33CC1, NUCLEO-WL33CC2, STEVAL-PROTEUS1, STEVAL-SMARTAG2, STEVAL-STWINBX1, STM320518-EVAL, STM32C0116-DK, STM32C011D6Y3TR, STM32C011D6Y6TR, STM32C011F4P3, STM32C011F4P6, STM32C011F4U3, STM32C011F4U6TR, STM32C011F6P3, STM32C011F6P6, STM32C011F6U3, STM32C011F6U6TR, STM32C011J4M3, STM32C011J4M6, STM32C011J6M3, STM32C011J6M6, STM32C0316-DK, STM32C031C4T3, STM32C031C4T6, STM32C031C4U3, STM32C031C4U6, STM32C031C6T3, STM32C031C6T6, STM32C031C6U3, STM32C031C6U6, STM32C031F4P3, STM32C031F4P6, STM32C031F6P3, STM32C031F6P6, STM32C031G4U3, STM32C031G4U6, STM32C031G6U3, STM32C031G6U6, STM32C031K4T3, STM32C031K4T6, STM32C031K4U3, STM32C031K4U6, STM32C031K6T3, STM32C031K6T6, STM32C031K6U3, STM32C031K6U6, STM32C051C6T6, STM32C051C6U6, STM32C051C8T6, STM32C051C8U6, STM32C051D8Y6TR, STM32C051F6P6, STM32C051F8P6, STM32C051G6U6, STM32C051G8U6, STM32C051K6T6, STM32C051K6U6, STM32C051K8T6, STM32C071C8T6, STM32C071C8T6N, STM32C071C8U6, STM32C071C8U6N, STM32C071CBT6, STM32C071CBT6N, STM32C071CBU6, STM32C071CBU6N, STM32C071F8P6, STM32C071F8P6N, STM32C071FBP6, STM32C071FBP6N, STM32C071FBY6TR, STM32C071G8U6, STM32C071G8U6N, STM32C071GBU6, STM32C071GBU6N, STM32C071K8T6, STM32C071K8T6N, STM32C071K8U6, STM32C071K8U6N, STM32C071KBT6, STM32C071KBT6N, STM32C071KBU6, STM32C071KBU6N, STM32C071R8T6, STM32C071R8T6N, STM32C071RBI6N, STM32C071RBT6, STM32C071RBT6N, STM32C091CBT6, STM32C091CBU6, STM32C091CCT6, STM32C091CCU6, STM32C091ECY6TR, STM32C091FBP6, STM32C091FCP6, STM32C091GBU6, STM32C091GCU6, STM32C091KBT6, STM32C091KBU6, STM32C091KCT6, STM32C091KCU6, STM32C091RBT6, STM32C091RCI6, STM32C091RCT6, STM32C092CBT6, STM32C092CBU6, STM32C092CCT6, STM32C092CCU6, STM32C092ECY6TR, STM32C092FBP6, STM32C092FCP6, STM32C092GBU6, STM32C092GCU6, STM32C092KBT6, STM32C092KBU6, STM32C092KCT6, STM32C092KCU6, STM32C092RBT6, STM32C092RCI6, STM32C092RCT6, STM32G071K8TXN, STM32G071K8UXN, STM32G081GBU6N, STM32G081KBT6N, STM32G081KBUXN, STM32G0B1CCT6N, STM32G0B1KCT6, STM32G0B1NEY6TR, STM32G0B1RCT6N, STM32G0C1CCT6, STM32G0C1CCT6N, STM32G0C1CCU6N, STM32G0C1CET6N, STM32G0C1CEU6N, STM32G0C1KCT6, STM32G0C1NEY6TR, STM32G0C1RCI6N, STM32G0C1RCT6N, STM32G0C1REI6N, STM32G0C1RET6N, STM32G0C1VCI6, STM32G0C1VEI6, STM32G411C6T3, STM32G411C6T6, STM32G411C6U3, STM32G411C6U6, STM32G411C8T3, STM32G411C8T6, STM32G411C8U3, STM32G411C8U6, STM32G411CBT3, STM32G411CBT6, STM32G411CBU3, STM32G411CBU6, STM32G411K6T3, STM32G411K6T6, STM32G411K6U3, STM32G411K6U6, STM32G411K8T3, STM32G411K8T6, STM32G411K8U3, STM32G411K8U6, STM32G411KBT3, STM32G411KBT6, STM32G411KBU3, STM32G411KBU6, STM32G411M6T3, STM32G411M6T6, STM32G411M8T3, STM32G411M8T6, STM32G411MBT3, STM32G411MBT6, STM32G411R6T3, STM32G411R6T6, STM32G411R8T3, STM32G411R8T6, STM32G411RBT3, STM32G411RBT6, STM32G414CBT3, STM32G414CBT6, STM32G414CBU3, STM32G414CBU6, STM32G414CCT3, STM32G414CCT6, STM32G414CCU3, STM32G414CCU6, STM32G414MBT3, STM32G414MBT6, STM32G414MCT3, STM32G414MCT6, STM32G414RBT3, STM32G414RBT6, STM32G414RCT3, STM32G414RCT6, STM32G414VBT3, STM32G414VBT6, STM32G414VCT3, STM32G414VCT6, STM32G431CBT3Z, STM32G431RBT3Z, STM32G471CCT6, STM32G471CCU6, STM32G471CET3, STM32G471CET6, STM32G471CEU3, STM32G471CEU6, STM32G471MCT6, STM32G471MET3, STM32G471MET6, STM32G471MEY6TR, STM32G471QCT6, STM32G471QET3, STM32G471RCT6, STM32G471RET3, STM32G471RET6, STM32G471VCH6, STM32G471VCI6, STM32G471VCT6, STM32G471VEH3, STM32G471VEH6, STM32G471VEI3, STM32G471VEI6, STM32G471VET3, STM32G471VET6, STM32G473QET3Z, STM32G473RET3Z, STM32G474CCT6, STM32G491RET3Z, STM32H503CBT6, STM32H503CBU6, STM32H503EBY6TR, STM32H503KBU6, STM32H503RBT6, STM32H523CCT6, STM32H523CCU6, STM32H523CET6, STM32H523CEU6, STM32H523HEY6TR, STM32H523RCT6, STM32H523RET6, STM32H523VCI6, STM32H523VCT6, STM32H523VEI6, STM32H523VET6, STM32H523ZCJ6, STM32H523ZCT6, STM32H523ZEJ6, STM32H523ZET6, STM32H533CET6, STM32H533CEU6, STM32H533HEY6TR, STM32H533RET6, STM32H533VEI6, STM32H533VET6, STM32H533ZEJ6, STM32H533ZET6, STM32H562AGI6, STM32H562AII6, STM32H562IGK6, STM32H562IGT6, STM32H562IIK6, STM32H562IIT6, STM32H562RGT6, STM32H562RGV6, STM32H562RIT6, STM32H562RIV6, STM32H562VGT6, STM32H562VIT6, STM32H562ZGT6, STM32H562ZIT6, STM32H563AGI6, STM32H563AII3Q, STM32H563AII6, STM32H563IGK6, STM32H563IGT6, STM32H563IIK3Q, STM32H563IIK6, STM32H563IIT3Q, STM32H563IIT6, STM32H563MIY3QTR, STM32H563RGT6, STM32H563RGV6, STM32H563RIT6, STM32H563RIV6, STM32H563VGT6, STM32H563VIT3Q, STM32H563VIT6, STM32H563ZGT6, STM32H563ZIT3Q, STM32H563ZIT6, STM32H573AII3Q, STM32H573AII6, STM32H573I-DK, STM32H573IIK3Q, STM32H573IIK6, STM32H573IIT3Q, STM32H573IIT6, STM32H573MIY3QTR, STM32H573RIT6, STM32H573RIV6, STM32H573VIT3Q, STM32H573VIT6, STM32H573ZIT3Q, STM32H573ZIT6, STM32H7R3A8I6, STM32H7R3I8K6, STM32H7R3I8T6, STM32H7R3L8H6, STM32H7R3L8H6H, STM32H7R3R8V6, STM32H7R3V8H6, STM32H7R3V8T6, STM32H7R3V8Y6TR, STM32H7R3Z8J6, STM32H7R3Z8T6, STM32H7R7A8I6, STM32H7R7I8K6, STM32H7R7I8T6, STM32H7R7L8H6, STM32H7R7L8H6H, STM32H7R7Z8J6, STM32H7S3A8I6, STM32H7S3I8K6, STM32H7S3I8T6, STM32H7S3L8H6, STM32H7S3L8H6H, STM32H7S3R8V6, STM32H7S3V8H6, STM32H7S3V8T6, STM32H7S3V8Y6TR, STM32H7S3Z8J6, STM32H7S3Z8T6, STM32H7S78-DK, STM32H7S7A8I6, STM32H7S7I8K6, STM32H7S7I8T6, STM32H7S7L8H6, STM32H7S7L8H6H, STM32H7S7Z8J6, STM32L4R5QGI6STR, STM32MP131AAE3, STM32MP131AAF3, STM32MP131AAG3, STM32MP131CAE3, STM32MP131CAF3, STM32MP131CAG3, STM32MP131DAE7, STM32MP131DAF7, STM32MP131DAG7, STM32MP131FAE7, STM32MP131FAF7, STM32MP131FAG7, STM32MP133AAE3, STM32MP133AAF3, STM32MP133AAG3, STM32MP133CAE3, STM32MP133CAF3, STM32MP133CAG3, STM32MP133DAE7, STM32MP133DAF7, STM32MP133DAG7, STM32MP133FAE7, STM32MP133FAF7, STM32MP133FAG7, STM32MP135AAE3, STM32MP135AAF3, STM32MP135AAG3, STM32MP135CAE3, STM32MP135CAF3, STM32MP135CAG3, STM32MP135DAE7, STM32MP135DAF7, STM32MP135DAG7, STM32MP135F-DK, STM32MP135FAE7, STM32MP135FAF7, STM32MP135FAF7T, STM32MP135FAF7U, STM32MP135FAG7, STM32MP211AAL3, STM32MP211AAM3, STM32MP211AAN3, STM32MP211AAO3, STM32MP211CAL3, STM32MP211CAM3, STM32MP211CAN3, STM32MP211CAO3, STM32MP211DAL3, STM32MP211DAM3, STM32MP211DAN3, STM32MP211DAO3, STM32MP211FAL3, STM32MP211FAM3, STM32MP211FAN3, STM32MP211FAO3, STM32MP213AAL3, STM32MP213AAM3, STM32MP213AAN3, STM32MP213AAO3, STM32MP213CAL3, STM32MP213CAM3, STM32MP213CAN3, STM32MP213CAO3, STM32MP213DAL3, STM32MP213DAM3, STM32MP213DAN3, STM32MP213DAO3, STM32MP213FAL3, STM32MP213FAM3, STM32MP213FAN3, STM32MP213FAO3, STM32MP215AAL3, STM32MP215AAM3, STM32MP215AAN3, STM32MP215AAO3, STM32MP215CAL3, STM32MP215CAM3, STM32MP215CAN3, STM32MP215CAO3, STM32MP215DAL3, STM32MP215DAM3, STM32MP215DAN3, STM32MP215DAO3, STM32MP215F-DK, STM32MP215FAL3, STM32MP215FAM3, STM32MP215FAN3, STM32MP215FAO3, STM32MP231AAJ3, STM32MP231AAK3, STM32MP231AAL3, STM32MP231CAJ3, STM32MP231CAK3, STM32MP231CAL3, STM32MP231DAJ3, STM32MP231DAK3, STM32MP231DAL3, STM32MP231FAJ3, STM32MP231FAK3, STM32MP231FAL3, STM32MP233AAJ3, STM32MP233AAK3, STM32MP233AAL3, STM32MP233CAJ3, STM32MP233CAK3, STM32MP233CAL3, STM32MP233DAJ3, STM32MP233DAK3, STM32MP233DAL3, STM32MP233FAJ3, STM32MP233FAK3, STM32MP233FAL3, STM32MP235AAJ3, STM32MP235AAK3, STM32MP235AAL3, STM32MP235CAJ3, STM32MP235CAK3, STM32MP235CAL3, STM32MP235DAJ3, STM32MP235DAK3, STM32MP235DAL3, STM32MP235FAJ3, STM32MP235FAK3, STM32MP235FAL3, STM32MP251AAI3, STM32MP251AAK3, STM32MP251AAL3, STM32MP251CAI3, STM32MP251CAK3, STM32MP251CAL3, STM32MP251DAI3, STM32MP251DAK3, STM32MP251DAL3, STM32MP251FAI3, STM32MP251FAK3, STM32MP251FAL3, STM32MP253AAI3, STM32MP253AAK3, STM32MP253AAL3, STM32MP253CAI3, STM32MP253CAK3, STM32MP253CAL3, STM32MP253DAI3, STM32MP253DAK3, STM32MP253DAL3, STM32MP253FAI3, STM32MP253FAK3, STM32MP253FAL3, STM32MP255AAI3, STM32MP255AAK3, STM32MP255AAL3, STM32MP255CAI3, STM32MP255CAK3, STM32MP255CAL3, STM32MP255DAI3, STM32MP255DAK3, STM32MP255DAL3, STM32MP255FAI3, STM32MP255FAK3, STM32MP255FAL3, STM32MP257AAI3, STM32MP257AAK3, STM32MP257AAL3, STM32MP257CAI3, STM32MP257CAK3, STM32MP257CAL3, STM32MP257DAI3, STM32MP257DAK3, STM32MP257DAL3, STM32MP257F-DK, STM32MP257F-EV1, STM32MP257FAI3, STM32MP257FAK3, STM32MP257FAL3, STM32N645A0H3Q, STM32N645B0H3Q, STM32N645I0H3Q, STM32N645L0H3Q, STM32N645X0H3Q, STM32N645Z0H3Q, STM32N647A0H3Q, STM32N647B0H3Q, STM32N647I0H3Q, STM32N647L0H3Q, STM32N647X0H3Q, STM32N647Z0H3Q, STM32N655A0H3Q, STM32N655B0H3Q, STM32N655I0H3Q, STM32N655L0H3Q, STM32N655X0H3Q, STM32N655Z0H3Q, STM32N6570-DK, STM32N657A0H3Q, STM32N657B0H3Q, STM32N657I0H3Q, STM32N657L0H3Q, STM32N657X0H3Q, STM32N657Z0H3Q, STM32U031C6T6, STM32U031C6U6, STM32U031C8T6, STM32U031C8U6, STM32U031F4P6, STM32U031F6P6, STM32U031F8P6, STM32U031G6Y6TR, STM32U031G8Y6TR, STM32U031K4U6, STM32U031K6U6, STM32U031K8U6, STM32U031R6I6, STM32U031R6T6, STM32U031R8I6, STM32U031R8T6, STM32U073C8T6, STM32U073C8U6, STM32U073CBT6, STM32U073CBU6, STM32U073CCT6, STM32U073CCU6, STM32U073H8Y6TR, STM32U073HBY6TR, STM32U073HCY6TR, STM32U073K8U6, STM32U073KBU6, STM32U073KCU6, STM32U073M8I6, STM32U073M8T6, STM32U073MBI6, STM32U073MBT6, STM32U073MCI6, STM32U073MCT6, STM32U073R8I6, STM32U073R8T6, STM32U073RBI6, STM32U073RBT6, STM32U073RCI6, STM32U073RCT6, STM32U083C-DK, STM32U083CCT6, STM32U083CCU6, STM32U083HCY6TR, STM32U083KCU6, STM32U083MCI6, STM32U083MCT6, STM32U083RCI6, STM32U083RCT6, STM32U375CET6, STM32U375CET6Q, STM32U375CEU6, STM32U375CEU6Q, STM32U375CEY6QTR, STM32U375CGT6, STM32U375CGT6Q, STM32U375CGU6, STM32U375CGU6Q, STM32U375CGY6QTR, STM32U375KEU6, STM32U375KGU6, STM32U375REI6, STM32U375REI6Q, STM32U375RET6, STM32U375RET6Q, STM32U375REY6GTR, STM32U375REY6QTR, STM32U375RGI6, STM32U375RGI6Q, STM32U375RGT6, STM32U375RGT6Q, STM32U375RGY6GTR, STM32U375RGY6QTR, STM32U375VEI6, STM32U375VEI6Q, STM32U375VET6, STM32U375VET6Q, STM32U375VGI6, STM32U375VGI6Q, STM32U375VGT6, STM32U375VGT6Q, STM32U385CGT6, STM32U385CGT6Q, STM32U385CGU6, STM32U385CGU6Q, STM32U385CGY6QTR, STM32U385KGU6, STM32U385RGI6, STM32U385RGI6Q, STM32U385RGT6, STM32U385RGT6Q, STM32U385RGY6GTR, STM32U385RGY6QTR, STM32U385VGI6, STM32U385VGI6Q, STM32U385VGT6, STM32U385VGT6Q, STM32U535CBT6, STM32U535CBT6Q, STM32U535CBU6, STM32U535CBU6Q, STM32U535CCT6, STM32U535CCT6Q, STM32U535CCU6, STM32U535CCU6Q, STM32U535CET6, STM32U535CET6Q, STM32U535CEU6, STM32U535CEU6Q, STM32U535JEY6QTR, STM32U535NCY6QTR, STM32U535NEY6QTR, STM32U535RBI6, STM32U535RBI6Q, STM32U535RBT6, STM32U535RBT6Q, STM32U535RCI6, STM32U535RCI6Q, STM32U535RCT6, STM32U535RCT6Q, STM32U535REI6, STM32U535REI6Q, STM32U535RET6, STM32U535RET6Q, STM32U535VCI6, STM32U535VCI6Q, STM32U535VCT6, STM32U535VCT6Q, STM32U535VEI6, STM32U535VEI6Q, STM32U535VET6, STM32U535VET6Q, STM32U545CET6, STM32U545CET6Q, STM32U545CEU6, STM32U545CEU6Q, STM32U545JEY6QTR, STM32U545NEY6QTR, STM32U545REI6, STM32U545REI6Q, STM32U545RET6, STM32U545RET6Q, STM32U545VEI6, STM32U545VEI6Q, STM32U545VET6, STM32U545VET6Q, STM32U595AIH6, STM32U595AIH6Q, STM32U595AJH6, STM32U595AJH6Q, STM32U595QII6, STM32U595QII6Q, STM32U595QJI6, STM32U595QJI6Q, STM32U595RIT6, STM32U595RIT6Q, STM32U595RJT6, STM32U595RJT6Q, STM32U595VIT6, STM32U595VIT6Q, STM32U595VJT6, STM32U595VJT6Q, STM32U595ZIT6, STM32U595ZIT6Q, STM32U595ZIY6QTR, STM32U595ZJT6, STM32U595ZJT6Q, STM32U595ZJY6QTR, STM32U599BJY6QTR, STM32U599NIH6Q, STM32U599NJH6Q, STM32U599VIT6Q, STM32U599VJT6, STM32U599VJT6Q, STM32U599ZIT6Q, STM32U599ZIY6QTR, STM32U599ZJT6Q, STM32U599ZJY6QTR, STM32U5A5AJH6, STM32U5A5AJH6Q, STM32U5A5QII3Q , STM32U5A5QJI6, STM32U5A5QJI6Q, STM32U5A5RJT6, STM32U5A5RJT6Q, STM32U5A5VJT6, STM32U5A5VJT6Q, STM32U5A5ZJT6, STM32U5A5ZJT6Q, STM32U5A5ZJY6QTR, STM32U5A9BJY6QTR, STM32U5A9J-DK, STM32U5A9NJH6Q, STM32U5A9VJT6Q, STM32U5A9ZJT6Q, STM32U5A9ZJY6QTR, STM32U5F7VIT6, STM32U5F7VIT6Q, STM32U5F7VJT6, STM32U5F7VJT6Q, STM32U5F9BJY6QTR, STM32U5F9NJH6Q, STM32U5F9VIT6Q, STM32U5F9VJT6Q, STM32U5F9ZIJ6QTR, STM32U5F9ZIT6Q, STM32U5F9ZJJ6QTR, STM32U5F9ZJT6Q, STM32U5G7VJT6, STM32U5G7VJT6Q, STM32U5G9BJY6QTR, STM32U5G9J-DK1, STM32U5G9J-DK2, STM32U5G9NJH6Q, STM32U5G9VJT6Q, STM32U5G9ZJJ6QTR, STM32U5G9ZJT6Q, STM32WB05KZV6TR, STM32WB05KZV7TR, STM32WB05TZF6TR, STM32WB05TZF7TR, STM32WB06CCF6TR, STM32WB06CCF7TR, STM32WB06CCV6TR, STM32WB06CCV7TR, STM32WB06KCV6TR, STM32WB06KCV7TR, STM32WB07CCF6TR, STM32WB07CCF7TR, STM32WB07CCV6TR, STM32WB07CCV7TR, STM32WB07KCV6TR, STM32WB07KCV7TR, STM32WB09KEV6TR, STM32WB09KEV7TR, STM32WB09TEF6TR, STM32WB09TEF7TR, STM32WB1MMCH6, STM32WBA50KGU6, STM32WBA50KGU6TR, STM32WBA52CEU6, STM32WBA52CEU6TR, STM32WBA52CEU7, STM32WBA52CEU7TR, STM32WBA52CGU6, STM32WBA52CGU6TR, STM32WBA52CGU6U, STM32WBA52CGU7, STM32WBA52CGU7TR, STM32WBA52KEU6, STM32WBA52KEU6TR, STM32WBA52KGU6, STM32WBA52KGU6TR, STM32WBA54CEU6, STM32WBA54CEU6TR, STM32WBA54CEU7, STM32WBA54CEU7TR, STM32WBA54CGU6, STM32WBA54CGU6TR, STM32WBA54CGU7, STM32WBA54CGU7TR, STM32WBA54KEU6, STM32WBA54KEU6TR, STM32WBA54KEU7, STM32WBA54KEU7TR, STM32WBA54KGU6, STM32WBA54KGU6TR, STM32WBA54KGU7, STM32WBA54KGU7TR, STM32WBA55CEU6, STM32WBA55CEU6TR, STM32WBA55CEU7, STM32WBA55CEU7TR, STM32WBA55CGU6, STM32WBA55CGU6TR, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CGU7TR, STM32WBA55G-DK1, STM32WBA55HEF6, STM32WBA55HEF7, STM32WBA55HGF6, STM32WBA55HGF7, STM32WBA55UEI6, STM32WBA55UEI6TR, STM32WBA55UEI7, STM32WBA55UEI7TR, STM32WBA55UGI6, STM32WBA55UGI6TR, STM32WBA55UGI7, STM32WBA55UGI7TR, STM32WBA5MMGH6TR, STM32WBA62MGF6, STM32WBA62MIF6, STM32WBA65MGF7, STM32WBA65MIF6, STM32WBA65MIF7, STM32WL30K8V6, STM32WL30KBV6, STM32WL31C8V6, STM32WL31CBV6, STM32WL31K8V6, STM32WL31KBV6, STM32WL33C8V6, STM32WL33C8V6X, STM32WL33CBV6, STM32WL33CBV6X, STM32WL33CCV6, STM32WL33CCV6A, STM32WL33CCV6X, STM32WL33K8V7, STM32WL33K8V7X, STM32WL33KBV7 , STM32WL33KBV7X, STM32WL33KCV7, STM32WL33KCV7X, STM32WL5MOCH6, STM32WL5MOCH6TR]
+2025-09-20 02:03:30,602 [INFO] BoardInfo:889 - No configuration file found for board P-NUCLEO-WB55
+2025-09-20 02:03:30,604 [INFO] DbBoards:161 - Kit is not supported: P-NUCLEO-WB55
+2025-09-20 02:03:30,614 [INFO] BoardInfo:889 - No configuration file found for board STEVAL-BFA001V1B
+2025-09-20 02:03:30,615 [INFO] DbBoards:161 - Kit is not supported: STEVAL-BFA001V1B
+2025-09-20 02:03:30,619 [INFO] BoardInfo:889 - No configuration file found for board STEVAL-BFA001V2B
+2025-09-20 02:03:30,620 [INFO] DbBoards:161 - Kit is not supported: STEVAL-BFA001V2B
+2025-09-20 02:03:31,030 [INFO] DbBoards:168 - Found 212 boards, 209 are supported
+2025-09-20 02:03:31,030 [INFO] DbBoards:169 - Found 212 boards, 43 of them is supported for Bsp
+2025-09-20 02:03:31,039 [INFO] ApiDb:668 - CubeFinder database Data Model version=2.1
+2025-09-20 02:03:31,039 [INFO] ApiDb:669 - CubeFinder database Configuration version=3.0.39
+2025-09-20 02:03:31,040 [INFO] ApiDb:670 - CubeFinder database generation date=2025-08-25 (1756130511)
+2025-09-20 02:03:31,040 [INFO] ApiDb:671 - CubeFinder database FW Pack versions=[FP-ATR-ASTRA1_V2.0.0, FP-SNS-FLIGHT1_V5.1.0, FP-SNS-MOTENV1_V5.0.0, FP-SNS-MOTENVWB1_V1.4.0, FP-SNS-SMARTAG2_V1.2.0, FP-SNS-STBOX1_V2.1.0, STM32Cube_FW_C0_V1.4.0, STM32Cube_FW_F4_V1.28.3, STM32Cube_FW_F7_V1.17.4, STM32Cube_FW_G0_V1.6.2, STM32Cube_FW_G4_V1.6.1, STM32Cube_FW_H5_V1.5.0, STM32Cube_FW_H7RS_V1.2.0, STM32Cube_FW_H7_V1.12.1, STM32Cube_FW_L0_V1.12.2, STM32Cube_FW_L4_V1.18.1, STM32Cube_FW_L5_V1.5.1, STM32Cube_FW_N6_V1.2.0, STM32Cube_FW_U0_V1.3.0, STM32Cube_FW_U3_V1.2.0, STM32Cube_FW_U5_V1.8.0, STM32Cube_FW_WB0_V1.3.0, STM32Cube_FW_WBA_V1.7.0, STM32Cube_FW_WB_V1.23.0, STM32Cube_FW_WL3_V1.2.0, STM32Cube_FW_WL_V1.3.1, X-CUBE-ALGOBUILD_V1.4.0, X-CUBE-ALS_V1.0.2, X-CUBE-AZRTOS-F4_V1.1.0, X-CUBE-AZRTOS-F7_V1.1.0, X-CUBE-AZRTOS-G0_V1.1.0, X-CUBE-AZRTOS-G4_V2.0.0, X-CUBE-AZRTOS-H7RS_V1.1.0, X-CUBE-AZRTOS-H7_V3.4.0, X-CUBE-AZRTOS-L4_V2.0.0, X-CUBE-AZRTOS-L5_V2.0.0, X-CUBE-AZRTOS-WB_V2.0.0, X-CUBE-AZRTOS-WL_V2.0.0, X-CUBE-BLE1_V7.1.0, X-CUBE-BLE2_V3.3.0, X-CUBE-BLEMGR_V4.1.0, X-CUBE-EEPRMA1_V5.2.0, X-CUBE-FREERTOS_V1.3.1, X-CUBE-GNSS1_V6.0.0, X-CUBE-MEMS1_V11.3.0, X-CUBE-NFC4_V3.0.0, X-CUBE-NFC7_V2.0.0, X-CUBE-SFXS2LP1_V4.0.0, X-CUBE-ST67W61_V1.0.0, X-CUBE-SUBG2_V5.0.0, X-CUBE-TOF1_V3.4.3]
+2025-09-20 02:03:38,146 [INFO] ApiDb:240 - Found 880 in-development CPN: [B-G473E-ZEST1S, B-WB1M-WPAN1, B-WBA5M-WPAN, B-WL5M-SUBG1, NUCLEO-C031C6, NUCLEO-C051C8, NUCLEO-C071RB, NUCLEO-C092RC, NUCLEO-H503RB, NUCLEO-H533RE, NUCLEO-H563ZI, NUCLEO-H7S3L8, NUCLEO-N657X0-Q, NUCLEO-U031R8, NUCLEO-U083RC, NUCLEO-U385RG-Q, NUCLEO-U545RE-Q, NUCLEO-U5A5ZJ-Q, NUCLEO-WB05KZ, NUCLEO-WB07CC, NUCLEO-WB09KE, NUCLEO-WBA52CG, NUCLEO-WBA55CG, NUCLEO-WL33CC1, NUCLEO-WL33CC2, STEVAL-PROTEUS1, STEVAL-SMARTAG2, STEVAL-STWINBX1, STM320518-EVAL, STM32C0116-DK, STM32C011D6Y3TR, STM32C011D6Y6TR, STM32C011F4P3, STM32C011F4P6, STM32C011F4U3, STM32C011F4U6TR, STM32C011F6P3, STM32C011F6P6, STM32C011F6U3, STM32C011F6U6TR, STM32C011J4M3, STM32C011J4M6, STM32C011J6M3, STM32C011J6M6, STM32C0316-DK, STM32C031C4T3, STM32C031C4T6, STM32C031C4U3, STM32C031C4U6, STM32C031C6T3, STM32C031C6T6, STM32C031C6U3, STM32C031C6U6, STM32C031F4P3, STM32C031F4P6, STM32C031F6P3, STM32C031F6P6, STM32C031G4U3, STM32C031G4U6, STM32C031G6U3, STM32C031G6U6, STM32C031K4T3, STM32C031K4T6, STM32C031K4U3, STM32C031K4U6, STM32C031K6T3, STM32C031K6T6, STM32C031K6U3, STM32C031K6U6, STM32C051C6T6, STM32C051C6U6, STM32C051C8T6, STM32C051C8U6, STM32C051D8Y6TR, STM32C051F6P6, STM32C051F8P6, STM32C051G6U6, STM32C051G8U6, STM32C051K6T6, STM32C051K6U6, STM32C051K8T6, STM32C071C8T6, STM32C071C8T6N, STM32C071C8U6, STM32C071C8U6N, STM32C071CBT6, STM32C071CBT6N, STM32C071CBU6, STM32C071CBU6N, STM32C071F8P6, STM32C071F8P6N, STM32C071FBP6, STM32C071FBP6N, STM32C071FBY6TR, STM32C071G8U6, STM32C071G8U6N, STM32C071GBU6, STM32C071GBU6N, STM32C071K8T6, STM32C071K8T6N, STM32C071K8U6, STM32C071K8U6N, STM32C071KBT6, STM32C071KBT6N, STM32C071KBU6, STM32C071KBU6N, STM32C071R8T6, STM32C071R8T6N, STM32C071RBI6N, STM32C071RBT6, STM32C071RBT6N, STM32C091CBT6, STM32C091CBU6, STM32C091CCT6, STM32C091CCU6, STM32C091ECY6TR, STM32C091FBP6, STM32C091FCP6, STM32C091GBU6, STM32C091GCU6, STM32C091KBT6, STM32C091KBU6, STM32C091KCT6, STM32C091KCU6, STM32C091RBT6, STM32C091RCI6, STM32C091RCT6, STM32C092CBT6, STM32C092CBU6, STM32C092CCT6, STM32C092CCU6, STM32C092ECY6TR, STM32C092FBP6, STM32C092FCP6, STM32C092GBU6, STM32C092GCU6, STM32C092KBT6, STM32C092KBU6, STM32C092KCT6, STM32C092KCU6, STM32C092RBT6, STM32C092RCI6, STM32C092RCT6, STM32G071K8TXN, STM32G071K8UXN, STM32G081GBU6N, STM32G081KBT6N, STM32G081KBUXN, STM32G0B1CCT6N, STM32G0B1KCT6, STM32G0B1NEY6TR, STM32G0B1RCT6N, STM32G0C1CCT6, STM32G0C1CCT6N, STM32G0C1CCU6N, STM32G0C1CET6N, STM32G0C1CEU6N, STM32G0C1KCT6, STM32G0C1NEY6TR, STM32G0C1RCI6N, STM32G0C1RCT6N, STM32G0C1REI6N, STM32G0C1RET6N, STM32G0C1VCI6, STM32G0C1VEI6, STM32G411C6T3, STM32G411C6T6, STM32G411C6U3, STM32G411C6U6, STM32G411C8T3, STM32G411C8T6, STM32G411C8U3, STM32G411C8U6, STM32G411CBT3, STM32G411CBT6, STM32G411CBU3, STM32G411CBU6, STM32G411K6T3, STM32G411K6T6, STM32G411K6U3, STM32G411K6U6, STM32G411K8T3, STM32G411K8T6, STM32G411K8U3, STM32G411K8U6, STM32G411KBT3, STM32G411KBT6, STM32G411KBU3, STM32G411KBU6, STM32G411M6T3, STM32G411M6T6, STM32G411M8T3, STM32G411M8T6, STM32G411MBT3, STM32G411MBT6, STM32G411R6T3, STM32G411R6T6, STM32G411R8T3, STM32G411R8T6, STM32G411RBT3, STM32G411RBT6, STM32G414CBT3, STM32G414CBT6, STM32G414CBU3, STM32G414CBU6, STM32G414CCT3, STM32G414CCT6, STM32G414CCU3, STM32G414CCU6, STM32G414MBT3, STM32G414MBT6, STM32G414MCT3, STM32G414MCT6, STM32G414RBT3, STM32G414RBT6, STM32G414RCT3, STM32G414RCT6, STM32G414VBT3, STM32G414VBT6, STM32G414VCT3, STM32G414VCT6, STM32G431CBT3Z, STM32G431RBT3Z, STM32G471CCT6, STM32G471CCU6, STM32G471CET3, STM32G471CET6, STM32G471CEU3, STM32G471CEU6, STM32G471MCT6, STM32G471MET3, STM32G471MET6, STM32G471MEY6TR, STM32G471QCT6, STM32G471QET3, STM32G471RCT6, STM32G471RET3, STM32G471RET6, STM32G471VCH6, STM32G471VCI6, STM32G471VCT6, STM32G471VEH3, STM32G471VEH6, STM32G471VEI3, STM32G471VEI6, STM32G471VET3, STM32G471VET6, STM32G473QET3Z, STM32G473RET3Z, STM32G474CCT6, STM32G491RET3Z, STM32H503CBT6, STM32H503CBU6, STM32H503EBY6TR, STM32H503KBU6, STM32H503RBT6, STM32H523CCT6, STM32H523CCU6, STM32H523CET6, STM32H523CEU6, STM32H523HEY6TR, STM32H523RCT6, STM32H523RET6, STM32H523VCI6, STM32H523VCT6, STM32H523VEI6, STM32H523VET6, STM32H523ZCJ6, STM32H523ZCT6, STM32H523ZEJ6, STM32H523ZET6, STM32H533CET6, STM32H533CEU6, STM32H533HEY6TR, STM32H533RET6, STM32H533VEI6, STM32H533VET6, STM32H533ZEJ6, STM32H533ZET6, STM32H562AGI6, STM32H562AII6, STM32H562IGK6, STM32H562IGT6, STM32H562IIK6, STM32H562IIT6, STM32H562RGT6, STM32H562RGV6, STM32H562RIT6, STM32H562RIV6, STM32H562VGT6, STM32H562VIT6, STM32H562ZGT6, STM32H562ZIT6, STM32H563AGI6, STM32H563AII3Q, STM32H563AII6, STM32H563IGK6, STM32H563IGT6, STM32H563IIK3Q, STM32H563IIK6, STM32H563IIT3Q, STM32H563IIT6, STM32H563MIY3QTR, STM32H563RGT6, STM32H563RGV6, STM32H563RIT6, STM32H563RIV6, STM32H563VGT6, STM32H563VIT3Q, STM32H563VIT6, STM32H563ZGT6, STM32H563ZIT3Q, STM32H563ZIT6, STM32H573AII3Q, STM32H573AII6, STM32H573I-DK, STM32H573IIK3Q, STM32H573IIK6, STM32H573IIT3Q, STM32H573IIT6, STM32H573MIY3QTR, STM32H573RIT6, STM32H573RIV6, STM32H573VIT3Q, STM32H573VIT6, STM32H573ZIT3Q, STM32H573ZIT6, STM32H7R3A8I6, STM32H7R3I8K6, STM32H7R3I8T6, STM32H7R3L8H6, STM32H7R3L8H6H, STM32H7R3R8V6, STM32H7R3V8H6, STM32H7R3V8T6, STM32H7R3V8Y6TR, STM32H7R3Z8J6, STM32H7R3Z8T6, STM32H7R7A8I6, STM32H7R7I8K6, STM32H7R7I8T6, STM32H7R7L8H6, STM32H7R7L8H6H, STM32H7R7Z8J6, STM32H7S3A8I6, STM32H7S3I8K6, STM32H7S3I8T6, STM32H7S3L8H6, STM32H7S3L8H6H, STM32H7S3R8V6, STM32H7S3V8H6, STM32H7S3V8T6, STM32H7S3V8Y6TR, STM32H7S3Z8J6, STM32H7S3Z8T6, STM32H7S78-DK, STM32H7S7A8I6, STM32H7S7I8K6, STM32H7S7I8T6, STM32H7S7L8H6, STM32H7S7L8H6H, STM32H7S7Z8J6, STM32L4R5QGI6STR, STM32MP131AAE3, STM32MP131AAF3, STM32MP131AAG3, STM32MP131CAE3, STM32MP131CAF3, STM32MP131CAG3, STM32MP131DAE7, STM32MP131DAF7, STM32MP131DAG7, STM32MP131FAE7, STM32MP131FAF7, STM32MP131FAG7, STM32MP133AAE3, STM32MP133AAF3, STM32MP133AAG3, STM32MP133CAE3, STM32MP133CAF3, STM32MP133CAG3, STM32MP133DAE7, STM32MP133DAF7, STM32MP133DAG7, STM32MP133FAE7, STM32MP133FAF7, STM32MP133FAG7, STM32MP135AAE3, STM32MP135AAF3, STM32MP135AAG3, STM32MP135CAE3, STM32MP135CAF3, STM32MP135CAG3, STM32MP135DAE7, STM32MP135DAF7, STM32MP135DAG7, STM32MP135F-DK, STM32MP135FAE7, STM32MP135FAF7, STM32MP135FAF7T, STM32MP135FAF7U, STM32MP135FAG7, STM32MP211AAL3, STM32MP211AAM3, STM32MP211AAN3, STM32MP211AAO3, STM32MP211CAL3, STM32MP211CAM3, STM32MP211CAN3, STM32MP211CAO3, STM32MP211DAL3, STM32MP211DAM3, STM32MP211DAN3, STM32MP211DAO3, STM32MP211FAL3, STM32MP211FAM3, STM32MP211FAN3, STM32MP211FAO3, STM32MP213AAL3, STM32MP213AAM3, STM32MP213AAN3, STM32MP213AAO3, STM32MP213CAL3, STM32MP213CAM3, STM32MP213CAN3, STM32MP213CAO3, STM32MP213DAL3, STM32MP213DAM3, STM32MP213DAN3, STM32MP213DAO3, STM32MP213FAL3, STM32MP213FAM3, STM32MP213FAN3, STM32MP213FAO3, STM32MP215AAL3, STM32MP215AAM3, STM32MP215AAN3, STM32MP215AAO3, STM32MP215CAL3, STM32MP215CAM3, STM32MP215CAN3, STM32MP215CAO3, STM32MP215DAL3, STM32MP215DAM3, STM32MP215DAN3, STM32MP215DAO3, STM32MP215F-DK, STM32MP215FAL3, STM32MP215FAM3, STM32MP215FAN3, STM32MP215FAO3, STM32MP231AAJ3, STM32MP231AAK3, STM32MP231AAL3, STM32MP231CAJ3, STM32MP231CAK3, STM32MP231CAL3, STM32MP231DAJ3, STM32MP231DAK3, STM32MP231DAL3, STM32MP231FAJ3, STM32MP231FAK3, STM32MP231FAL3, STM32MP233AAJ3, STM32MP233AAK3, STM32MP233AAL3, STM32MP233CAJ3, STM32MP233CAK3, STM32MP233CAL3, STM32MP233DAJ3, STM32MP233DAK3, STM32MP233DAL3, STM32MP233FAJ3, STM32MP233FAK3, STM32MP233FAL3, STM32MP235AAJ3, STM32MP235AAK3, STM32MP235AAL3, STM32MP235CAJ3, STM32MP235CAK3, STM32MP235CAL3, STM32MP235DAJ3, STM32MP235DAK3, STM32MP235DAL3, STM32MP235FAJ3, STM32MP235FAK3, STM32MP235FAL3, STM32MP251AAI3, STM32MP251AAK3, STM32MP251AAL3, STM32MP251CAI3, STM32MP251CAK3, STM32MP251CAL3, STM32MP251DAI3, STM32MP251DAK3, STM32MP251DAL3, STM32MP251FAI3, STM32MP251FAK3, STM32MP251FAL3, STM32MP253AAI3, STM32MP253AAK3, STM32MP253AAL3, STM32MP253CAI3, STM32MP253CAK3, STM32MP253CAL3, STM32MP253DAI3, STM32MP253DAK3, STM32MP253DAL3, STM32MP253FAI3, STM32MP253FAK3, STM32MP253FAL3, STM32MP255AAI3, STM32MP255AAK3, STM32MP255AAL3, STM32MP255CAI3, STM32MP255CAK3, STM32MP255CAL3, STM32MP255DAI3, STM32MP255DAK3, STM32MP255DAL3, STM32MP255FAI3, STM32MP255FAK3, STM32MP255FAL3, STM32MP257AAI3, STM32MP257AAK3, STM32MP257AAL3, STM32MP257CAI3, STM32MP257CAK3, STM32MP257CAL3, STM32MP257DAI3, STM32MP257DAK3, STM32MP257DAL3, STM32MP257F-DK, STM32MP257F-EV1, STM32MP257FAI3, STM32MP257FAK3, STM32MP257FAL3, STM32N645A0H3Q, STM32N645B0H3Q, STM32N645I0H3Q, STM32N645L0H3Q, STM32N645X0H3Q, STM32N645Z0H3Q, STM32N647A0H3Q, STM32N647B0H3Q, STM32N647I0H3Q, STM32N647L0H3Q, STM32N647X0H3Q, STM32N647Z0H3Q, STM32N655A0H3Q, STM32N655B0H3Q, STM32N655I0H3Q, STM32N655L0H3Q, STM32N655X0H3Q, STM32N655Z0H3Q, STM32N6570-DK, STM32N657A0H3Q, STM32N657B0H3Q, STM32N657I0H3Q, STM32N657L0H3Q, STM32N657X0H3Q, STM32N657Z0H3Q, STM32U031C6T6, STM32U031C6U6, STM32U031C8T6, STM32U031C8U6, STM32U031F4P6, STM32U031F6P6, STM32U031F8P6, STM32U031G6Y6TR, STM32U031G8Y6TR, STM32U031K4U6, STM32U031K6U6, STM32U031K8U6, STM32U031R6I6, STM32U031R6T6, STM32U031R8I6, STM32U031R8T6, STM32U073C8T6, STM32U073C8U6, STM32U073CBT6, STM32U073CBU6, STM32U073CCT6, STM32U073CCU6, STM32U073H8Y6TR, STM32U073HBY6TR, STM32U073HCY6TR, STM32U073K8U6, STM32U073KBU6, STM32U073KCU6, STM32U073M8I6, STM32U073M8T6, STM32U073MBI6, STM32U073MBT6, STM32U073MCI6, STM32U073MCT6, STM32U073R8I6, STM32U073R8T6, STM32U073RBI6, STM32U073RBT6, STM32U073RCI6, STM32U073RCT6, STM32U083C-DK, STM32U083CCT6, STM32U083CCU6, STM32U083HCY6TR, STM32U083KCU6, STM32U083MCI6, STM32U083MCT6, STM32U083RCI6, STM32U083RCT6, STM32U375CET6, STM32U375CET6Q, STM32U375CEU6, STM32U375CEU6Q, STM32U375CEY6QTR, STM32U375CGT6, STM32U375CGT6Q, STM32U375CGU6, STM32U375CGU6Q, STM32U375CGY6QTR, STM32U375KEU6, STM32U375KGU6, STM32U375REI6, STM32U375REI6Q, STM32U375RET6, STM32U375RET6Q, STM32U375REY6GTR, STM32U375REY6QTR, STM32U375RGI6, STM32U375RGI6Q, STM32U375RGT6, STM32U375RGT6Q, STM32U375RGY6GTR, STM32U375RGY6QTR, STM32U375VEI6, STM32U375VEI6Q, STM32U375VET6, STM32U375VET6Q, STM32U375VGI6, STM32U375VGI6Q, STM32U375VGT6, STM32U375VGT6Q, STM32U385CGT6, STM32U385CGT6Q, STM32U385CGU6, STM32U385CGU6Q, STM32U385CGY6QTR, STM32U385KGU6, STM32U385RGI6, STM32U385RGI6Q, STM32U385RGT6, STM32U385RGT6Q, STM32U385RGY6GTR, STM32U385RGY6QTR, STM32U385VGI6, STM32U385VGI6Q, STM32U385VGT6, STM32U385VGT6Q, STM32U535CBT6, STM32U535CBT6Q, STM32U535CBU6, STM32U535CBU6Q, STM32U535CCT6, STM32U535CCT6Q, STM32U535CCU6, STM32U535CCU6Q, STM32U535CET6, STM32U535CET6Q, STM32U535CEU6, STM32U535CEU6Q, STM32U535JEY6QTR, STM32U535NCY6QTR, STM32U535NEY6QTR, STM32U535RBI6, STM32U535RBI6Q, STM32U535RBT6, STM32U535RBT6Q, STM32U535RCI6, STM32U535RCI6Q, STM32U535RCT6, STM32U535RCT6Q, STM32U535REI6, STM32U535REI6Q, STM32U535RET6, STM32U535RET6Q, STM32U535VCI6, STM32U535VCI6Q, STM32U535VCT6, STM32U535VCT6Q, STM32U535VEI6, STM32U535VEI6Q, STM32U535VET6, STM32U535VET6Q, STM32U545CET6, STM32U545CET6Q, STM32U545CEU6, STM32U545CEU6Q, STM32U545JEY6QTR, STM32U545NEY6QTR, STM32U545REI6, STM32U545REI6Q, STM32U545RET6, STM32U545RET6Q, STM32U545VEI6, STM32U545VEI6Q, STM32U545VET6, STM32U545VET6Q, STM32U595AIH6, STM32U595AIH6Q, STM32U595AJH6, STM32U595AJH6Q, STM32U595QII6, STM32U595QII6Q, STM32U595QJI6, STM32U595QJI6Q, STM32U595RIT6, STM32U595RIT6Q, STM32U595RJT6, STM32U595RJT6Q, STM32U595VIT6, STM32U595VIT6Q, STM32U595VJT6, STM32U595VJT6Q, STM32U595ZIT6, STM32U595ZIT6Q, STM32U595ZIY6QTR, STM32U595ZJT6, STM32U595ZJT6Q, STM32U595ZJY6QTR, STM32U599BJY6QTR, STM32U599NIH6Q, STM32U599NJH6Q, STM32U599VIT6Q, STM32U599VJT6, STM32U599VJT6Q, STM32U599ZIT6Q, STM32U599ZIY6QTR, STM32U599ZJT6Q, STM32U599ZJY6QTR, STM32U5A5AJH6, STM32U5A5AJH6Q, STM32U5A5QII3Q , STM32U5A5QJI6, STM32U5A5QJI6Q, STM32U5A5RJT6, STM32U5A5RJT6Q, STM32U5A5VJT6, STM32U5A5VJT6Q, STM32U5A5ZJT6, STM32U5A5ZJT6Q, STM32U5A5ZJY6QTR, STM32U5A9BJY6QTR, STM32U5A9J-DK, STM32U5A9NJH6Q, STM32U5A9VJT6Q, STM32U5A9ZJT6Q, STM32U5A9ZJY6QTR, STM32U5F7VIT6, STM32U5F7VIT6Q, STM32U5F7VJT6, STM32U5F7VJT6Q, STM32U5F9BJY6QTR, STM32U5F9NJH6Q, STM32U5F9VIT6Q, STM32U5F9VJT6Q, STM32U5F9ZIJ6QTR, STM32U5F9ZIT6Q, STM32U5F9ZJJ6QTR, STM32U5F9ZJT6Q, STM32U5G7VJT6, STM32U5G7VJT6Q, STM32U5G9BJY6QTR, STM32U5G9J-DK1, STM32U5G9J-DK2, STM32U5G9NJH6Q, STM32U5G9VJT6Q, STM32U5G9ZJJ6QTR, STM32U5G9ZJT6Q, STM32WB05KZV6TR, STM32WB05KZV7TR, STM32WB05TZF6TR, STM32WB05TZF7TR, STM32WB06CCF6TR, STM32WB06CCF7TR, STM32WB06CCV6TR, STM32WB06CCV7TR, STM32WB06KCV6TR, STM32WB06KCV7TR, STM32WB07CCF6TR, STM32WB07CCF7TR, STM32WB07CCV6TR, STM32WB07CCV7TR, STM32WB07KCV6TR, STM32WB07KCV7TR, STM32WB09KEV6TR, STM32WB09KEV7TR, STM32WB09TEF6TR, STM32WB09TEF7TR, STM32WB1MMCH6, STM32WBA50KGU6, STM32WBA50KGU6TR, STM32WBA52CEU6, STM32WBA52CEU6TR, STM32WBA52CEU7, STM32WBA52CEU7TR, STM32WBA52CGU6, STM32WBA52CGU6TR, STM32WBA52CGU6U, STM32WBA52CGU7, STM32WBA52CGU7TR, STM32WBA52KEU6, STM32WBA52KEU6TR, STM32WBA52KGU6, STM32WBA52KGU6TR, STM32WBA54CEU6, STM32WBA54CEU6TR, STM32WBA54CEU7, STM32WBA54CEU7TR, STM32WBA54CGU6, STM32WBA54CGU6TR, STM32WBA54CGU7, STM32WBA54CGU7TR, STM32WBA54KEU6, STM32WBA54KEU6TR, STM32WBA54KEU7, STM32WBA54KEU7TR, STM32WBA54KGU6, STM32WBA54KGU6TR, STM32WBA54KGU7, STM32WBA54KGU7TR, STM32WBA55CEU6, STM32WBA55CEU6TR, STM32WBA55CEU7, STM32WBA55CEU7TR, STM32WBA55CGU6, STM32WBA55CGU6TR, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CGU7TR, STM32WBA55G-DK1, STM32WBA55HEF6, STM32WBA55HEF7, STM32WBA55HGF6, STM32WBA55HGF7, STM32WBA55UEI6, STM32WBA55UEI6TR, STM32WBA55UEI7, STM32WBA55UEI7TR, STM32WBA55UGI6, STM32WBA55UGI6TR, STM32WBA55UGI7, STM32WBA55UGI7TR, STM32WBA5MMGH6TR, STM32WBA62MGF6, STM32WBA62MIF6, STM32WBA65MGF7, STM32WBA65MIF6, STM32WBA65MIF7, STM32WL30K8V6, STM32WL30KBV6, STM32WL31C8V6, STM32WL31CBV6, STM32WL31K8V6, STM32WL31KBV6, STM32WL33C8V6, STM32WL33C8V6X, STM32WL33CBV6, STM32WL33CBV6X, STM32WL33CCV6, STM32WL33CCV6A, STM32WL33CCV6X, STM32WL33K8V7, STM32WL33K8V7X, STM32WL33KBV7 , STM32WL33KBV7X, STM32WL33KCV7, STM32WL33KCV7X, STM32WL5MOCH6, STM32WL5MOCH6TR]
+2025-09-20 02:03:38,160 [INFO] DbMcus:218 - Found 4801 MCUs, 4801 are supported
+2025-09-20 02:03:38,161 [INFO] ApiDb:423 - Load user favorites file /home/ja/.stm32cubeide/favorites.mcus.txt: 0 item(s)
+2025-09-20 02:03:38,162 [INFO] ApiDb:427 - User favorites MCUs=[]
+2025-09-20 02:03:38,162 [INFO] DbMcus:224 - Set 0 / 0 favorites MCUs
+2025-09-20 02:03:39,907 [INFO] ApiDb:414 - User favorites file not found: /home/ja/.stm32cubeide/favorites.boards.txt
+2025-09-20 02:03:39,908 [INFO] DbBoards:198 - Set 0 / 0 favorites Boards
+2025-09-20 02:03:39,963 [INFO] UtilMem:75 - End LoadConfig() Used Memory: 681168496 Bytes (912261120)
+2025-09-20 02:03:40,343 [WARN] ThirdParty:833 - waiting for thirdparty lock release [change project]
+2025-09-20 02:03:40,344 [INFO] ThirdParty:835 - entering critical section [change project]
+2025-09-20 02:03:40,344 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-PM33A1 1.0.0
+2025-09-20 02:03:40,344 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USBPD 4.1
+2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC9 1.0.0
+2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 2.0.0
+2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENVWB1 1.4.0
+2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F4 1.1.0
+2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics LIBJPEG 8.0.0
+2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-ASTRA1 2.0.2
+2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSL 5.8.2
+2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE1 7.1.0
+2025-09-20 02:03:40,345 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Avnet-IotConnect X-CUBE-IoTC-DA16k-PMOD 1.0.0
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SMBUS 2.1.0
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfMQTT 1.19.2
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 3.0.0
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ISPU 2.1.0
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-EEPRMA1 5.2.0
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLEMGR 4.1.0
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WB 2.0.0
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST60 1.0.0
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-GNSS1 7.0.1
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC12 1.0.0
+2025-09-20 02:03:40,346 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F7 1.1.0
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L5 2.0.0
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOUCHGFX 4.25.0
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 2.0.0
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC6 3.1.0
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :quantropi X-CUBE-qispace-sdk-base 2.1.0
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FreeRTOS 0.0.1
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G0 1.1.0
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SAFEA1 1.2.2
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC4 3.0.0
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SUBG2 5.0.0
+2025-09-20 02:03:40,347 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7RS 1.1.0
+2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics STM32_WPAN 1.0.0
+2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :EmbeddedOffice I-CUBE-FS-RTOS 1.0.1
+2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.0.3
+2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :WES I-CUBE-Cesium 1.4.0
+2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Cesanta I-CUBE-Mongoose 7.13.0
+2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 1.0.0
+2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Infineon AIROC-Wi-Fi-Bluetooth-STM32 1.7.1
+2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G4 2.0.0
+2025-09-20 02:03:40,348 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-WB05N 2.0.0
+2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.1.0
+2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.3.0
+2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfTPM 3.8.0
+2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7 3.4.0
+2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DISPLAY 3.0.0
+2025-09-20 02:03:40,349 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSH 1.4.20
+2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC7 2.0.0
+2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TCPP 4.2.0
+2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :RealThread X-CUBE-RT-Thread_Nano 4.1.1
+2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-SIGFOX1 3.2.0
+2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC10 1.0.0
+2025-09-20 02:03:40,350 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-FREERTOS 1.3.1
+2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics HAL Drivers 0.0.0
+2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.16.2
+2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-IPS 3.1.0
+2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALS 1.0.2
+2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :emotas I-CUBE-CANOPEN 1.3.0
+2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.14.1
+2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :ITTIA_DB I-CUBE-ITTIADB 8.9.0
+2025-09-20 02:03:40,351 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-STSE01 1.0.0
+2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :portGmbH I-Cube-SoM-uGOAL 1.1.0
+2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST67W61 1.0.0
+2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STBOX1 2.1.0
+2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AI 10.2.0
+2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STAIOTCFT 1.0.0
+2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 1.0.0
+2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-SMARTAG2 1.2.0
+2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-FLIGHT1 5.1.0
+2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WL 2.0.0
+2025-09-20 02:03:40,352 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :SEGGER I-CUBE-embOS 1.3.1
+2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALGOBUILD 1.4.0
+2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DPower 1.3.0
+2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-MEMS1 11.3.0
+2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENV1 5.0.0
+2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 1.0.0
+2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L4 2.0.0
+2025-09-20 02:03:40,353 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 0.0.2
+2025-09-20 02:03:40,354 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.1.2
+2025-09-20 02:03:40,354 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SFXS2LP1 4.0.0
+2025-09-20 02:03:40,354 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE2 3.3.0
+2025-09-20 02:03:40,354 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOF1 3.4.3
+2025-09-20 02:03:40,354 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.2.0
+2025-09-20 02:03:40,354 [INFO] ThirdParty:841 - exiting critical section [change project]
+2025-09-20 02:03:41,895 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 02:03:41,900 [INFO] PinOutPanel:1589 - setPackage(STM32F429ZITx,LQFP144)
+2025-09-20 02:03:43,685 [INFO] UtilMem:75 - Before build in PCC Used Memory: 660889184 Bytes (931135488)
+2025-09-20 02:03:46,004 [INFO] UtilMem:75 - After build in PCC Used Memory: 884374320 Bytes (931135488)
+2025-09-20 02:03:46,293 [INFO] ApiDbMcu:532 - Load IP Config File for FREERTOS
+2025-09-20 02:03:46,376 [INFO] ApiDbMcu:532 - Load IP Config File for USB_HOST
+2025-09-20 02:03:46,668 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,671 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,672 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,672 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,672 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,675 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,676 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,676 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,677 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,677 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,678 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,678 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,679 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,679 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,680 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,680 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,681 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,681 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,682 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,682 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,683 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,684 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,685 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,686 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,687 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,687 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,688 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,689 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,690 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,691 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,754 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,763 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,763 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,764 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,764 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,765 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,766 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,767 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,768 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,769 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,769 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,769 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,770 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,770 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,770 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,771 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,771 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,771 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,772 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,773 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,773 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,775 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,778 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,785 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,787 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,790 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,792 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,794 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,801 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,808 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,814 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,817 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,820 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,822 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,824 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,826 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:03:46,856 [INFO] ApiDbMcu:532 - Load IP Config File for PDM2PCM
+2025-09-20 02:03:47,093 [WARN] FreeRTOS:1023 - Null or empty value: should not occur! (nothing added to the table)
+2025-09-20 02:03:48,720 [INFO] CADModel:165 - CPN selected for project levelSTM32F429ZIT6
+2025-09-20 02:03:48,720 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 02:03:48,733 [INFO] RtosManager:728 - Active RTOS found at IOC load: FREERTOS [Cortex-M4NS]
+2025-09-20 02:03:48,834 [INFO] OpenFileManager:386 - Restore cursor
+2025-09-20 02:03:49,932 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:04:53,421 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:04:53,688 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:04:53,879 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:05:07,215 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:05:07,460 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:05:07,670 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:05:24,373 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:05:24,615 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:05:24,812 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:06:43,157 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:07:00,737 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:07:03,844 [INFO] CADModel:198 - CPN selected (Project mode): STM32F429ZIT6
+2025-09-20 02:07:03,844 [INFO] CADModel:200 - Internet connection configuration mode: 1
+2025-09-20 02:07:03,844 [INFO] CADModel:203 - rpn retrievedSTM32F429ZI
+2025-09-20 02:07:03,852 [INFO] WebAppUi:336 - Instantiating new browser for Project
+2025-09-20 02:07:04,060 [INFO] WebAppUi:1235 - Register for checkConnection events
+2025-09-20 02:07:04,061 [INFO] WebAppUi:1270 - Apply proxy settings
+2025-09-20 02:07:04,062 [INFO] WebAppUi:1308 - Chromium requires no authentication
+2025-09-20 02:07:04,063 [INFO] WebAppUi:1294 - Direct internet connection detected
+2025-09-20 02:07:04,075 [INFO] WebAppUi:1166 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient/index.html
+2025-09-20 02:07:04,099 [INFO] WebAppUi:938 - Path where api_config.json is located /home/ja/.stmcufinder/plugins/mcufinder//mcu/api_config.json
+2025-09-20 02:07:04,100 [INFO] WebAppUi:939 - Setting api config in window object
+2025-09-20 02:07:04,163 [INFO] WebAppUi:947 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
+2025-09-20 02:07:04,163 [INFO] WebAppUi:948 - Setting consent info in window object
+2025-09-20 02:07:05,379 [INFO] WebAppUi:843 - Allow Downloads
+2025-09-20 02:07:05,381 [INFO] WebAppUi:336 - Instantiating new browser for Finder
+2025-09-20 02:07:05,604 [INFO] WebAppUi:1100 - Web application message: [UlApiManager component] Connected to Ultra Librarian SSO
+2025-09-20 02:07:05,604 [INFO] WebAppUi:1100 - Web application message: [UlApiManager component] Connected to Ultra Librarian API
+2025-09-20 02:07:05,642 [INFO] WebAppUi:1235 - Register for checkConnection events
+2025-09-20 02:07:05,642 [INFO] WebAppUi:1270 - Apply proxy settings
+2025-09-20 02:07:05,643 [INFO] WebAppUi:1308 - Chromium requires no authentication
+2025-09-20 02:07:05,643 [INFO] WebAppUi:1294 - Direct internet connection detected
+2025-09-20 02:07:05,659 [INFO] WebAppUi:1166 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient/index.html
+2025-09-20 02:07:05,685 [INFO] WebAppUi:938 - Path where api_config.json is located /home/ja/.stmcufinder/plugins/mcufinder//mcu/api_config.json
+2025-09-20 02:07:05,685 [INFO] WebAppUi:939 - Setting api config in window object
+2025-09-20 02:07:05,741 [INFO] WebAppUi:947 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
+2025-09-20 02:07:05,741 [INFO] WebAppUi:948 - Setting consent info in window object
+2025-09-20 02:07:06,876 [INFO] WebAppUi:843 - Allow Downloads
+2025-09-20 02:07:06,877 [INFO] WebAppUi:664 - RPN selected STM32F429ZI
+2025-09-20 02:07:06,877 [INFO] WebAppUi:665 - RefName selected STM32F429ZITx
+2025-09-20 02:07:06,878 [INFO] WebAppUi:666 - CPN selected STM32F429ZIT6
+2025-09-20 02:07:06,881 [INFO] WebAppUi:829 - Which Bigleton in use 2 and which CPN is about STM32F429ZIT6
+2025-09-20 02:07:06,891 [INFO] WebAppUi:703 - Have injected Javascript into web application
+2025-09-20 02:07:06,892 [INFO] WebAppUiContainer:153 - Web application run mode: Project CPN: STM32F429ZIT6
+2025-09-20 02:07:09,274 [INFO] WebAppUi:938 - Path where api_config.json is located /home/ja/.stmcufinder/plugins/mcufinder//mcu/api_config.json
+2025-09-20 02:07:09,275 [INFO] WebAppUi:939 - Setting api config in window object
+2025-09-20 02:07:09,326 [INFO] WebAppUi:947 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
+2025-09-20 02:07:09,326 [INFO] WebAppUi:948 - Setting consent info in window object
+2025-09-20 02:07:09,619 [INFO] WebAppUi:1100 - Web application message: THREE.WebGLRenderer 101
+2025-09-20 02:07:13,023 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
+2025-09-20 02:07:13,023 [INFO] WebAppUi:306 - Updating consent from JSON file
+2025-09-20 02:07:13,030 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
+2025-09-20 02:07:13,030 [INFO] WebAppUi:306 - Updating consent from JSON file
+2025-09-20 02:07:13,040 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
+2025-09-20 02:07:13,041 [INFO] WebAppUi:306 - Updating consent from JSON file
+2025-09-20 02:07:13,714 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
+2025-09-20 02:07:13,714 [INFO] WebAppUi:306 - Updating consent from JSON file
+2025-09-20 02:07:13,720 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
+2025-09-20 02:07:13,721 [INFO] WebAppUi:306 - Updating consent from JSON file
+2025-09-20 02:07:13,726 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
+2025-09-20 02:07:13,726 [INFO] WebAppUi:306 - Updating consent from JSON file
+2025-09-20 02:07:15,502 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 02:07:15,502 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 02:07:16,705 [INFO] MicroXplorer:468 - Change Database Path :
+2025-09-20 02:07:16,705 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 02:07:16,731 [ERROR] ProjectManagerView:395 -
+java.lang.NullPointerException: Cannot invoke "javax.swing.JTextField.getText()" because the return value of "java.util.List.get(int)" is null
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab$9.caretUpdate(ProjectChoiceTab.java:2706) ~[filemanager.jar:?]
+ at javax.swing.text.JTextComponent.fireCaretUpdate(JTextComponent.java:408) ~[?:?]
+ at javax.swing.text.JTextComponent$MutableCaretEvent.fire(JTextComponent.java:4484) ~[?:?]
+ at javax.swing.text.JTextComponent$MutableCaretEvent.stateChanged(JTextComponent.java:4506) ~[?:?]
+ at javax.swing.text.DefaultCaret.fireStateChanged(DefaultCaret.java:857) ~[?:?]
+ at javax.swing.text.DefaultCaret.changeCaretPosition(DefaultCaret.java:1343) ~[?:?]
+ at javax.swing.text.DefaultCaret.handleSetDot(DefaultCaret.java:1242) ~[?:?]
+ at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1223) ~[?:?]
+ at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1819) ~[?:?]
+ at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:227) ~[?:?]
+ at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:781) ~[?:?]
+ at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:740) ~[?:?]
+ at javax.swing.text.PlainDocument.insertString(PlainDocument.java:131) ~[?:?]
+ at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:699) ~[?:?]
+ at javax.swing.text.JTextComponent.setText(JTextComponent.java:1725) ~[?:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.createHeapStackFields(ProjectChoiceTab.java:993) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.buildLinkSettingsPanel(ProjectChoiceTab.java:3813) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.defineWindowsFields(ProjectChoiceTab.java:1987) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.updateSettings(ProjectChoiceTab.java:558) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectSettingsPanel.UpdateDialog(ProjectSettingsPanel.java:247) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.ProjectManagerView.propertyChange(ProjectManagerView.java:392) ~[filemanager.jar:?]
+ at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343) ~[?:?]
+ at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:335) ~[?:?]
+ at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268) ~[?:?]
+ at com.st.microxplorer.util.MXPropertyChangeSupport.firePropertyChange(MXPropertyChangeSupport.java:54) ~[STM32CubeMX.jar:?]
+ at com.st.microxplorer.mxsystem.MxSystem.closeConfig(MxSystem.java:899) ~[STM32CubeMX.jar:?]
+ at com.st.microxplorer.maingui.MainPanel.closeConfig(MainPanel.java:792) ~[STM32CubeMX.jar:?]
+ at com.st.microxplorer.plugins.filemanager.engine.OpenFileManager.loadConfigurationFile(OpenFileManager.java:288) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:364) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:342) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.filemanager.FileManagerView.getSpecificTask(FileManagerView.java:264) ~[filemanager.jar:?]
+ at com.st.stm32cube.common.mx.editor.CubeMxEditor.getMxTabbedPaneInstance(CubeMxEditor.java:1198) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.editor.CubeMxEditor$12$1.createSwingComponent(CubeMxEditor.java:1068) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite.doComponentCreation(EmbeddedSwingComposite.java:492) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite$4.run(EmbeddedSwingComposite.java:291) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.oss.core.awtswtbridge.AwtEnvironment$2.run(AwtEnvironment.java:166) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
+ at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) ~[?:?]
+ at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[?:?]
+ at java.awt.EventQueue$4.run(EventQueue.java:720) ~[?:?]
+ at java.awt.EventQueue$4.run(EventQueue.java:714) ~[?:?]
+ at java.security.AccessController.doPrivileged(AccessController.java:400) ~[?:?]
+ at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) ~[?:?]
+ at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[?:?]
+ at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[?:?]
+ at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ~[?:?]
+2025-09-20 02:07:16,742 [WARN] ThirdParty:871 - waiting for thirdparty lock release [close project]
+2025-09-20 02:07:16,743 [INFO] ThirdParty:873 - entering critical section [close project]
+2025-09-20 02:07:16,743 [INFO] ThirdParty:883 - exiting critical section [close project]
+2025-09-20 02:07:16,747 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 02:07:16,779 [WARN] IpParametersView:155 - Warning: This peripheral hasn't parameters
+2025-09-20 02:07:16,806 [WARN] MainPanel:289 - Warning: This peripheral has no parameters to be configured
+2025-09-20 02:07:16,824 [INFO] UtilMem:75 - Begin LoadConfig() Used Memory: 937710736 Bytes (1073741824)
+2025-09-20 02:07:16,826 [INFO] MicroXplorer:468 - Change Database Path :
+2025-09-20 02:07:16,826 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 02:07:16,826 [INFO] OpenFileManager:355 - Change cursor
+2025-09-20 02:07:16,844 [INFO] Mcu:2029 - Initializing MCU STM32F429ZITx STM32F429ZITx STM32F429ZIT6
+2025-09-20 02:07:20,064 [INFO] Context:786 - Trying to add GPIOservice into a context which must be forbidden
+2025-09-20 02:07:20,970 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) Pin98 (VP_RIF_VS_RIF1) cannot be retrieved for this MCU
+2025-09-20 02:07:21,028 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS, mode=CMSIS_V1, owner=FREERTOS
+2025-09-20 02:07:21,029 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS2, mode=CMSIS_V2, owner=FREERTOS
+2025-09-20 02:07:21,029 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V1, owner=FREERTOS
+2025-09-20 02:07:21,029 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V2, owner=FREERTOS
+2025-09-20 02:07:21,029 [WARN] ModelIntegratedComponent:184 - Missing modes for component STMicroelectronics:FreeRTOS:0.0.1:STMicroelectronics:RTOS:FreeRTOS:Core:::10.2.0:
+2025-09-20 02:07:21,044 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,045 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,046 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,047 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,048 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,049 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:07:21,049 [WARN] ModelPack:524 - Component already loaded: STMicroelectronics:HAL Drivers:0.0.0:STMicroelectronics:Device:STMicro_Driver:XSPI:HAL::0.0.1:HAL_XSPI
+2025-09-20 02:07:21,238 [INFO] ThirdPartyModel:298 - Start build external matchings
+2025-09-20 02:07:22,430 [INFO] ThirdPartyModel:316 - End build external matchings
+2025-09-20 02:07:22,458 [INFO] RtosManager:1018 - Current active RTOS is FREERTOS [Cortex-M4NS]
+2025-09-20 02:07:22,473 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:07:22,474 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Invalid parameter (FamilyName)
+2025-09-20 02:07:22,475 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Parameter (RTCHSEDivFreq_Value) has invalid value (4000000)
+2025-09-20 02:07:22,781 [INFO] UtilMem:75 - End LoadConfig() Used Memory: 898155800 Bytes (1073741824)
+2025-09-20 02:07:22,800 [WARN] ThirdParty:833 - waiting for thirdparty lock release [change project]
+2025-09-20 02:07:22,800 [INFO] ThirdParty:835 - entering critical section [change project]
+2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-PM33A1 1.0.0
+2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USBPD 4.1
+2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC9 1.0.0
+2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 2.0.0
+2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENVWB1 1.4.0
+2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F4 1.1.0
+2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics LIBJPEG 8.0.0
+2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-ASTRA1 2.0.2
+2025-09-20 02:07:22,801 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSL 5.8.2
+2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE1 7.1.0
+2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Avnet-IotConnect X-CUBE-IoTC-DA16k-PMOD 1.0.0
+2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SMBUS 2.1.0
+2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfMQTT 1.19.2
+2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 3.0.0
+2025-09-20 02:07:22,802 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ISPU 2.1.0
+2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-EEPRMA1 5.2.0
+2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLEMGR 4.1.0
+2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WB 2.0.0
+2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST60 1.0.0
+2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-GNSS1 7.0.1
+2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC12 1.0.0
+2025-09-20 02:07:22,803 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F7 1.1.0
+2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L5 2.0.0
+2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOUCHGFX 4.25.0
+2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 2.0.0
+2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC6 3.1.0
+2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :quantropi X-CUBE-qispace-sdk-base 2.1.0
+2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FreeRTOS 0.0.1
+2025-09-20 02:07:22,804 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G0 1.1.0
+2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SAFEA1 1.2.2
+2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC4 3.0.0
+2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SUBG2 5.0.0
+2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7RS 1.1.0
+2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics STM32_WPAN 1.0.0
+2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :EmbeddedOffice I-CUBE-FS-RTOS 1.0.1
+2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.0.3
+2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :WES I-CUBE-Cesium 1.4.0
+2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Cesanta I-CUBE-Mongoose 7.13.0
+2025-09-20 02:07:22,805 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 1.0.0
+2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Infineon AIROC-Wi-Fi-Bluetooth-STM32 1.7.1
+2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G4 2.0.0
+2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-WB05N 2.0.0
+2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.1.0
+2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.3.0
+2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfTPM 3.8.0
+2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7 3.4.0
+2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DISPLAY 3.0.0
+2025-09-20 02:07:22,806 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSH 1.4.20
+2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC7 2.0.0
+2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TCPP 4.2.0
+2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :RealThread X-CUBE-RT-Thread_Nano 4.1.1
+2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-SIGFOX1 3.2.0
+2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC10 1.0.0
+2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-FREERTOS 1.3.1
+2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics HAL Drivers 0.0.0
+2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.16.2
+2025-09-20 02:07:22,807 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-IPS 3.1.0
+2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALS 1.0.2
+2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :emotas I-CUBE-CANOPEN 1.3.0
+2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.14.1
+2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :ITTIA_DB I-CUBE-ITTIADB 8.9.0
+2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-STSE01 1.0.0
+2025-09-20 02:07:22,808 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :portGmbH I-Cube-SoM-uGOAL 1.1.0
+2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST67W61 1.0.0
+2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STBOX1 2.1.0
+2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AI 10.2.0
+2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STAIOTCFT 1.0.0
+2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 1.0.0
+2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-SMARTAG2 1.2.0
+2025-09-20 02:07:22,809 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-FLIGHT1 5.1.0
+2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WL 2.0.0
+2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :SEGGER I-CUBE-embOS 1.3.1
+2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALGOBUILD 1.4.0
+2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DPower 1.3.0
+2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-MEMS1 11.3.0
+2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENV1 5.0.0
+2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 1.0.0
+2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L4 2.0.0
+2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 0.0.2
+2025-09-20 02:07:22,810 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.1.2
+2025-09-20 02:07:22,811 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SFXS2LP1 4.0.0
+2025-09-20 02:07:22,811 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE2 3.3.0
+2025-09-20 02:07:22,811 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOF1 3.4.3
+2025-09-20 02:07:22,811 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.2.0
+2025-09-20 02:07:22,811 [INFO] ThirdParty:841 - exiting critical section [change project]
+2025-09-20 02:07:23,397 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 02:07:23,398 [INFO] PinOutPanel:1589 - setPackage(STM32F429ZITx,LQFP144)
+2025-09-20 02:07:23,916 [INFO] UtilMem:75 - Before build in PCC Used Memory: 644194520 Bytes (1073741824)
+2025-09-20 02:07:24,500 [INFO] UtilMem:75 - After build in PCC Used Memory: 692955352 Bytes (1073741824)
+2025-09-20 02:07:24,513 [INFO] ApiDbMcu:532 - Load IP Config File for FREERTOS
+2025-09-20 02:07:24,528 [INFO] ApiDbMcu:532 - Load IP Config File for USB_HOST
+2025-09-20 02:07:24,615 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,615 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,615 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,615 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,616 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,616 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,617 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,617 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,617 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,618 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,618 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,619 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,619 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,620 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,620 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,621 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,621 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,621 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,622 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,623 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,624 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,624 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,625 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,626 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,627 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,628 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,628 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,629 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,630 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,631 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,631 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,632 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,633 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,633 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,633 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,634 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,634 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,635 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,635 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,636 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,636 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,636 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,636 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,637 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,637 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,637 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,637 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,638 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,638 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,638 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,638 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,639 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,639 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,640 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,641 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,642 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,643 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,644 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,645 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,646 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,647 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,649 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,650 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,652 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,654 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,656 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:07:24,663 [INFO] ApiDbMcu:532 - Load IP Config File for PDM2PCM
+2025-09-20 02:07:24,701 [WARN] FreeRTOS:1023 - Null or empty value: should not occur! (nothing added to the table)
+2025-09-20 02:07:24,921 [INFO] CADModel:165 - CPN selected for project levelSTM32F429ZIT6
+2025-09-20 02:07:24,921 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 02:07:24,927 [INFO] RtosManager:728 - Active RTOS found at IOC load: FREERTOS [Cortex-M4NS]
+2025-09-20 02:07:25,036 [INFO] OpenFileManager:386 - Restore cursor
+2025-09-20 02:07:25,566 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:08:35,466 [INFO] WebAppUi:1100 - Web application message: WebGL: CONTEXT_LOST_WEBGL: loseContext: context lost
+2025-09-20 02:08:35,470 [INFO] WebAppUi:1100 - Web application message: THREE.WebGLRenderer: Context Lost.
+2025-09-20 02:09:08,705 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:09:09,025 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:09:09,282 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:09:21,020 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:09:21,201 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:09:21,348 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:09:31,550 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:09:31,837 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:09:32,083 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:17:31,086 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:18:24,367 [INFO] UtilMem:75 - End SaveConfig() Used Memory: 444424424 Bytes (940572672)
+2025-09-20 02:18:27,273 [INFO] UtilMem:75 - End SaveConfig() Used Memory: 467920792 Bytes (940572672)
+2025-09-20 02:18:33,675 [INFO] UtilMem:75 - End SaveConfig() Used Memory: 520875928 Bytes (940572672)
+2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: USB_OTG_HS
+2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: SPI
+2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: FREERTOS
+2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: TIM1_8
+2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: LTDC
+2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: SYS
+2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: RCC
+2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: CRC
+2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: I2C
+2025-09-20 02:18:52,676 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: NVIC
+2025-09-20 02:18:52,677 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: USB_HOST
+2025-09-20 02:18:52,677 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: DMA2D
+2025-09-20 02:18:52,677 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: USART
+2025-09-20 02:18:52,677 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: FMC
+2025-09-20 02:18:52,678 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: GPIO
+2025-09-20 02:18:52,679 [INFO] CodeGenerator:892 - code generatio: config db path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db/
+2025-09-20 02:18:52,697 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:18:53,170 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/license.tmp_save
+2025-09-20 02:18:53,831 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/license.tmp
+2025-09-20 02:18:54,250 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/gpio.tmp_save
+2025-09-20 02:18:54,610 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/gpio.tmp
+2025-09-20 02:18:55,142 [WARN] IPConfigManager:3238 - Warning: the RefConfig PWREx_EnableUSBVoltageDetector is not available in your config.xml file
+2025-09-20 02:18:55,151 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_vars.tmp_save
+2025-09-20 02:18:55,324 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_vars.tmp
+2025-09-20 02:18:55,329 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_inc.tmp_save
+2025-09-20 02:18:55,483 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_inc.tmp
+2025-09-20 02:18:55,488 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_HalInit.tmp_save
+2025-09-20 02:18:55,690 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_HalInit.tmp
+2025-09-20 02:18:55,693 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_Msp.tmp_save
+2025-09-20 02:18:55,917 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_Msp.tmp
+2025-09-20 02:18:58,853 [INFO] Middleware:1452 - No code input for Bsp Dependency
+2025-09-20 02:18:58,862 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp_save
+2025-09-20 02:18:58,999 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp
+2025-09-20 02:18:59,003 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp_save
+2025-09-20 02:18:59,150 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp
+2025-09-20 02:18:59,156 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp_save
+2025-09-20 02:18:59,304 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp
+2025-09-20 02:18:59,307 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp_save
+2025-09-20 02:18:59,459 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp
+2025-09-20 02:18:59,463 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp_save
+2025-09-20 02:18:59,629 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp
+2025-09-20 02:18:59,635 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp_save
+2025-09-20 02:18:59,768 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp
+2025-09-20 02:18:59,773 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp_save
+2025-09-20 02:18:59,903 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp
+2025-09-20 02:18:59,946 [INFO] Middleware:1452 - No code input for Bsp Dependency
+2025-09-20 02:18:59,951 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp_save
+2025-09-20 02:19:00,070 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp
+2025-09-20 02:19:00,072 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp_save
+2025-09-20 02:19:00,183 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp
+2025-09-20 02:19:00,187 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp_save
+2025-09-20 02:19:00,294 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp
+2025-09-20 02:19:00,297 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp_save
+2025-09-20 02:19:00,444 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp
+2025-09-20 02:19:00,446 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp_save
+2025-09-20 02:19:00,549 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp
+2025-09-20 02:19:00,553 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp_save
+2025-09-20 02:19:00,663 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp
+2025-09-20 02:19:00,664 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp_save
+2025-09-20 02:19:00,763 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp
+2025-09-20 02:19:00,768 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/FreeRTOSConfig.h_save
+2025-09-20 02:19:00,903 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/FreeRTOSConfig.h
+2025-09-20 02:19:00,906 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/freertos.c_save
+2025-09-20 02:19:01,027 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/freertos.c
+2025-09-20 02:19:01,038 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp_save
+2025-09-20 02:19:01,161 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp
+2025-09-20 02:19:01,164 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp_save
+2025-09-20 02:19:01,275 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp
+2025-09-20 02:19:01,278 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp_save
+2025-09-20 02:19:01,486 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp
+2025-09-20 02:19:01,531 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.c_save
+2025-09-20 02:19:01,754 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.c
+2025-09-20 02:19:01,758 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.h_save
+2025-09-20 02:19:01,894 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.h
+2025-09-20 02:19:01,896 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.h_save
+2025-09-20 02:19:02,050 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.h
+2025-09-20 02:19:02,053 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.c_save
+2025-09-20 02:19:02,196 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.c
+2025-09-20 02:19:02,199 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.c_save
+2025-09-20 02:19:02,341 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.c
+2025-09-20 02:19:02,343 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.h_save
+2025-09-20 02:19:02,470 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.h
+2025-09-20 02:19:02,490 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_it.c_save
+2025-09-20 02:19:02,641 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_it.c
+2025-09-20 02:19:02,643 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_it.h_save
+2025-09-20 02:19:02,810 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_it.h
+2025-09-20 02:19:02,815 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp_save
+2025-09-20 02:19:02,947 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp
+2025-09-20 02:19:02,949 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp_save
+2025-09-20 02:19:03,042 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp
+2025-09-20 02:19:03,043 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp_save
+2025-09-20 02:19:03,178 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp
+2025-09-20 02:19:03,203 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_msp.c_save
+2025-09-20 02:19:03,413 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_msp.c
+2025-09-20 02:19:03,416 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/system.tmp_save
+2025-09-20 02:19:03,558 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/system.tmp
+2025-09-20 02:19:03,579 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_timebase_tim.c_save
+2025-09-20 02:19:03,711 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_timebase_tim.c
+2025-09-20 02:19:03,720 [INFO] CodeEngine:321 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_hal_conf.h_save
+2025-09-20 02:19:03,876 [INFO] CodeEngine:345 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_hal_conf.h
+2025-09-20 02:19:03,954 [INFO] ApiDbMcu:532 - Load IP Config File for CRC
+2025-09-20 02:19:03,959 [INFO] ApiDbMcu:532 - Load IP Config File for DMA2D
+2025-09-20 02:19:03,977 [INFO] ApiDbMcu:532 - Load IP Config File for FMC
+2025-09-20 02:19:03,984 [INFO] ApiDbMcu:532 - Load IP Config File for I2C3
+2025-09-20 02:19:03,990 [INFO] ApiDbMcu:532 - Load IP Config File for LTDC
+2025-09-20 02:19:03,995 [INFO] ApiDbMcu:532 - Load IP Config File for SPI5
+2025-09-20 02:19:04,025 [INFO] ApiDbMcu:532 - Load IP Config File for TIM1
+2025-09-20 02:19:04,033 [INFO] ApiDbMcu:532 - Load IP Config File for USART1
+2025-09-20 02:19:04,043 [INFO] ApiDbMcu:532 - Load IP Config File for RCC
+2025-09-20 02:19:04,057 [WARN] IPConfigManager:3811 - IP not found : TIM
+2025-09-20 02:19:04,058 [WARN] CodeGenerator:4259 - IP not found : null
+2025-09-20 02:19:04,073 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/main.h_save
+2025-09-20 02:19:04,311 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/main.h
+2025-09-20 02:19:04,314 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/main.c_save
+2025-09-20 02:19:04,708 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/main.c
+2025-09-20 02:19:05,315 [INFO] ProjectBuilder:3606 - Time for Copy HAL[1] : 108mS.
+2025-09-20 02:19:05,334 [INFO] ProjectBuilder:5216 - Project Generator version: 4.7.0-B52
+2025-09-20 02:19:05,518 [INFO] ConfigFileManager:1595 - The Die is : DIE419
+2025-09-20 02:19:05,525 [INFO] ApiDbMcu:532 - Load IP Config File for FATFS
+2025-09-20 02:19:05,529 [INFO] ApiDbMcu:532 - Load IP Config File for LIBJPEG
+2025-09-20 02:19:05,554 [INFO] ApiDbMcu:532 - Load IP Config File for LWIP
+2025-09-20 02:19:05,564 [INFO] ApiDbMcu:532 - Load IP Config File for MBEDTLS
+2025-09-20 02:19:05,577 [INFO] ApiDbMcu:532 - Load IP Config File for USB_DEVICE
+2025-09-20 02:19:09,852 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT]
+2025-09-20 02:19:11,507 [INFO] ProjectBuilder:5496 - Time for Generating toolchain IDE Files: 6172mS.
+2025-09-20 02:19:11,508 [INFO] ProjectBuilder:3463 - Time for Copy CMSIS : 0mS.
+2025-09-20 02:19:11,511 [INFO] ProjectBuilder:3463 - Time for Copy CMSIS : 0mS.
+2025-09-20 02:22:38,224 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 02:22:38,225 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 02:22:38,280 [INFO] MicroXplorer:468 - Change Database Path :
+2025-09-20 02:22:38,280 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 02:22:38,300 [ERROR] ProjectManagerView:395 -
+java.lang.NullPointerException: Cannot invoke "javax.swing.JTextField.getText()" because the return value of "java.util.List.get(int)" is null
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab$9.caretUpdate(ProjectChoiceTab.java:2706) ~[filemanager.jar:?]
+ at javax.swing.text.JTextComponent.fireCaretUpdate(JTextComponent.java:408) ~[?:?]
+ at javax.swing.text.JTextComponent$MutableCaretEvent.fire(JTextComponent.java:4484) ~[?:?]
+ at javax.swing.text.JTextComponent$MutableCaretEvent.stateChanged(JTextComponent.java:4506) ~[?:?]
+ at javax.swing.text.DefaultCaret.fireStateChanged(DefaultCaret.java:857) ~[?:?]
+ at javax.swing.text.DefaultCaret.changeCaretPosition(DefaultCaret.java:1343) ~[?:?]
+ at javax.swing.text.DefaultCaret.handleSetDot(DefaultCaret.java:1242) ~[?:?]
+ at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1223) ~[?:?]
+ at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1819) ~[?:?]
+ at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:227) ~[?:?]
+ at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:781) ~[?:?]
+ at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:740) ~[?:?]
+ at javax.swing.text.PlainDocument.insertString(PlainDocument.java:131) ~[?:?]
+ at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:699) ~[?:?]
+ at javax.swing.text.JTextComponent.setText(JTextComponent.java:1725) ~[?:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.createHeapStackFields(ProjectChoiceTab.java:993) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.buildLinkSettingsPanel(ProjectChoiceTab.java:3813) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.defineWindowsFields(ProjectChoiceTab.java:1987) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.updateSettings(ProjectChoiceTab.java:558) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectSettingsPanel.UpdateDialog(ProjectSettingsPanel.java:247) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.ProjectManagerView.propertyChange(ProjectManagerView.java:392) ~[filemanager.jar:?]
+ at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343) ~[?:?]
+ at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:335) ~[?:?]
+ at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268) ~[?:?]
+ at com.st.microxplorer.util.MXPropertyChangeSupport.firePropertyChange(MXPropertyChangeSupport.java:54) ~[STM32CubeMX.jar:?]
+ at com.st.microxplorer.mxsystem.MxSystem.closeConfig(MxSystem.java:899) ~[STM32CubeMX.jar:?]
+ at com.st.microxplorer.maingui.MainPanel.closeConfig(MainPanel.java:792) ~[STM32CubeMX.jar:?]
+ at com.st.microxplorer.plugins.filemanager.engine.OpenFileManager.loadConfigurationFile(OpenFileManager.java:288) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:364) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:342) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.filemanager.FileManagerView.getSpecificTask(FileManagerView.java:264) ~[filemanager.jar:?]
+ at com.st.stm32cube.common.mx.editor.CubeMxEditor.getMxTabbedPaneInstance(CubeMxEditor.java:1198) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.editor.CubeMxEditor$12$1.createSwingComponent(CubeMxEditor.java:1068) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite.doComponentCreation(EmbeddedSwingComposite.java:492) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite$4.run(EmbeddedSwingComposite.java:291) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.oss.core.awtswtbridge.AwtEnvironment$2.run(AwtEnvironment.java:166) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
+ at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) ~[?:?]
+ at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[?:?]
+ at java.awt.EventQueue$4.run(EventQueue.java:720) ~[?:?]
+ at java.awt.EventQueue$4.run(EventQueue.java:714) ~[?:?]
+ at java.security.AccessController.doPrivileged(AccessController.java:400) ~[?:?]
+ at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) ~[?:?]
+ at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[?:?]
+ at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[?:?]
+ at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ~[?:?]
+2025-09-20 02:22:38,301 [WARN] ThirdParty:871 - waiting for thirdparty lock release [close project]
+2025-09-20 02:22:38,302 [INFO] ThirdParty:873 - entering critical section [close project]
+2025-09-20 02:22:38,302 [INFO] ThirdParty:883 - exiting critical section [close project]
+2025-09-20 02:22:38,304 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 02:22:38,311 [WARN] IpParametersView:155 - Warning: This peripheral hasn't parameters
+2025-09-20 02:22:38,315 [WARN] MainPanel:289 - Warning: This peripheral has no parameters to be configured
+2025-09-20 02:22:38,317 [INFO] UtilMem:75 - Begin LoadConfig() Used Memory: 563928608 Bytes (940572672)
+2025-09-20 02:22:38,318 [INFO] MicroXplorer:468 - Change Database Path :
+2025-09-20 02:22:38,318 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 02:22:38,318 [INFO] OpenFileManager:355 - Change cursor
+2025-09-20 02:22:38,342 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 02:22:38,352 [INFO] Mcu:2029 - Initializing MCU STM32F429ZITx STM32F429ZITx STM32F429ZIT6
+2025-09-20 02:22:39,587 [INFO] Context:786 - Trying to add GPIOservice into a context which must be forbidden
+2025-09-20 02:22:40,873 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) Pin101 (VP_RIF_VS_RIF1) cannot be retrieved for this MCU
+2025-09-20 02:22:40,958 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS, mode=CMSIS_V1, owner=FREERTOS
+2025-09-20 02:22:40,958 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS2, mode=CMSIS_V2, owner=FREERTOS
+2025-09-20 02:22:40,959 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V1, owner=FREERTOS
+2025-09-20 02:22:40,959 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V2, owner=FREERTOS
+2025-09-20 02:22:40,959 [WARN] ModelIntegratedComponent:184 - Missing modes for component STMicroelectronics:FreeRTOS:0.0.1:STMicroelectronics:RTOS:FreeRTOS:Core:::10.2.0:
+2025-09-20 02:22:40,996 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,997 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,998 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:40,999 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:41,000 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:41,000 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:41,000 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:41,000 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:41,000 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:22:41,000 [WARN] ModelPack:524 - Component already loaded: STMicroelectronics:HAL Drivers:0.0.0:STMicroelectronics:Device:STMicro_Driver:XSPI:HAL::0.0.1:HAL_XSPI
+2025-09-20 02:22:41,217 [INFO] ThirdPartyModel:298 - Start build external matchings
+2025-09-20 02:22:42,424 [INFO] ThirdPartyModel:316 - End build external matchings
+2025-09-20 02:22:42,449 [INFO] RtosManager:1018 - Current active RTOS is FREERTOS [Cortex-M4NS]
+2025-09-20 02:22:42,460 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:22:42,461 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Invalid parameter (FamilyName)
+2025-09-20 02:22:42,461 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Parameter (RTCHSEDivFreq_Value) has invalid value (4000000)
+2025-09-20 02:22:42,744 [INFO] UtilMem:75 - End LoadConfig() Used Memory: 527279784 Bytes (979369984)
+2025-09-20 02:22:42,761 [WARN] ThirdParty:833 - waiting for thirdparty lock release [change project]
+2025-09-20 02:22:42,762 [INFO] ThirdParty:835 - entering critical section [change project]
+2025-09-20 02:22:42,762 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-PM33A1 1.0.0
+2025-09-20 02:22:42,762 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USBPD 4.1
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC9 1.0.0
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 2.0.0
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENVWB1 1.4.0
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F4 1.1.0
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics LIBJPEG 8.0.0
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-ASTRA1 2.0.2
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSL 5.8.2
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE1 7.1.0
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Avnet-IotConnect X-CUBE-IoTC-DA16k-PMOD 1.0.0
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SMBUS 2.1.0
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfMQTT 1.19.2
+2025-09-20 02:22:42,763 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 3.0.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ISPU 2.1.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-EEPRMA1 5.2.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLEMGR 4.1.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WB 2.0.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST60 1.0.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-GNSS1 7.0.1
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC12 1.0.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F7 1.1.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L5 2.0.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOUCHGFX 4.25.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 2.0.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC6 3.1.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :quantropi X-CUBE-qispace-sdk-base 2.1.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FreeRTOS 0.0.1
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G0 1.1.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SAFEA1 1.2.2
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC4 3.0.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SUBG2 5.0.0
+2025-09-20 02:22:42,764 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7RS 1.1.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics STM32_WPAN 1.0.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :EmbeddedOffice I-CUBE-FS-RTOS 1.0.1
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.0.3
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :WES I-CUBE-Cesium 1.4.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Cesanta I-CUBE-Mongoose 7.13.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 1.0.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Infineon AIROC-Wi-Fi-Bluetooth-STM32 1.7.1
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G4 2.0.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-WB05N 2.0.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.1.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.3.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfTPM 3.8.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7 3.4.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DISPLAY 3.0.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSH 1.4.20
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC7 2.0.0
+2025-09-20 02:22:42,765 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TCPP 4.2.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :RealThread X-CUBE-RT-Thread_Nano 4.1.1
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-SIGFOX1 3.2.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC10 1.0.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-FREERTOS 1.3.1
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics HAL Drivers 0.0.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.16.2
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-IPS 3.1.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALS 1.0.2
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :emotas I-CUBE-CANOPEN 1.3.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.14.1
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :ITTIA_DB I-CUBE-ITTIADB 8.9.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-STSE01 1.0.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :portGmbH I-Cube-SoM-uGOAL 1.1.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST67W61 1.0.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STBOX1 2.1.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AI 10.2.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STAIOTCFT 1.0.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 1.0.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-SMARTAG2 1.2.0
+2025-09-20 02:22:42,766 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-FLIGHT1 5.1.0
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WL 2.0.0
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :SEGGER I-CUBE-embOS 1.3.1
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALGOBUILD 1.4.0
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DPower 1.3.0
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-MEMS1 11.3.0
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENV1 5.0.0
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 1.0.0
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L4 2.0.0
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 0.0.2
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.1.2
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SFXS2LP1 4.0.0
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE2 3.3.0
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOF1 3.4.3
+2025-09-20 02:22:42,767 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.2.0
+2025-09-20 02:22:42,768 [INFO] ThirdParty:841 - exiting critical section [change project]
+2025-09-20 02:22:43,346 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 02:22:43,346 [INFO] PinOutPanel:1589 - setPackage(STM32F429ZITx,LQFP144)
+2025-09-20 02:22:44,091 [INFO] UtilMem:75 - Before build in PCC Used Memory: 376833528 Bytes (979369984)
+2025-09-20 02:22:45,385 [INFO] UtilMem:75 - After build in PCC Used Memory: 428735992 Bytes (979369984)
+2025-09-20 02:22:45,396 [INFO] ApiDbMcu:532 - Load IP Config File for FREERTOS
+2025-09-20 02:22:45,402 [INFO] ApiDbMcu:532 - Load IP Config File for USB_HOST
+2025-09-20 02:22:45,468 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,468 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,469 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,469 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,469 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,469 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,470 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,470 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,471 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,471 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,472 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,472 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,472 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,473 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,473 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,474 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,475 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,476 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,476 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,477 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,477 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,478 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,478 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,479 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,480 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,480 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,481 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,482 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,483 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,483 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,484 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,484 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,485 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,486 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,487 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,487 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,488 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,488 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,489 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,489 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,489 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,490 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,490 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,490 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,490 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,490 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,491 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,491 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,491 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,492 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,493 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,494 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,495 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,496 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,497 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,498 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,499 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,500 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,501 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,502 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,504 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,505 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:22:45,509 [INFO] ApiDbMcu:532 - Load IP Config File for PDM2PCM
+2025-09-20 02:22:45,535 [WARN] FreeRTOS:1023 - Null or empty value: should not occur! (nothing added to the table)
+2025-09-20 02:22:45,673 [INFO] CADModel:165 - CPN selected for project levelSTM32F429ZIT6
+2025-09-20 02:22:45,673 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 02:22:45,677 [INFO] RtosManager:728 - Active RTOS found at IOC load: FREERTOS [Cortex-M4NS]
+2025-09-20 02:22:45,725 [INFO] OpenFileManager:386 - Restore cursor
+2025-09-20 02:22:46,028 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:28:22,703 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 02:28:22,704 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 02:28:22,768 [INFO] MicroXplorer:468 - Change Database Path :
+2025-09-20 02:28:22,769 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 02:28:22,792 [ERROR] ProjectManagerView:395 -
+java.lang.NullPointerException: Cannot invoke "javax.swing.JTextField.getText()" because the return value of "java.util.List.get(int)" is null
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab$9.caretUpdate(ProjectChoiceTab.java:2706) ~[filemanager.jar:?]
+ at javax.swing.text.JTextComponent.fireCaretUpdate(JTextComponent.java:408) ~[?:?]
+ at javax.swing.text.JTextComponent$MutableCaretEvent.fire(JTextComponent.java:4484) ~[?:?]
+ at javax.swing.text.JTextComponent$MutableCaretEvent.stateChanged(JTextComponent.java:4506) ~[?:?]
+ at javax.swing.text.DefaultCaret.fireStateChanged(DefaultCaret.java:857) ~[?:?]
+ at javax.swing.text.DefaultCaret.changeCaretPosition(DefaultCaret.java:1343) ~[?:?]
+ at javax.swing.text.DefaultCaret.handleSetDot(DefaultCaret.java:1242) ~[?:?]
+ at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1223) ~[?:?]
+ at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1819) ~[?:?]
+ at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:227) ~[?:?]
+ at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:781) ~[?:?]
+ at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:740) ~[?:?]
+ at javax.swing.text.PlainDocument.insertString(PlainDocument.java:131) ~[?:?]
+ at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:699) ~[?:?]
+ at javax.swing.text.JTextComponent.setText(JTextComponent.java:1725) ~[?:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.createHeapStackFields(ProjectChoiceTab.java:993) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.buildLinkSettingsPanel(ProjectChoiceTab.java:3813) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.defineWindowsFields(ProjectChoiceTab.java:1987) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectChoiceTab.updateSettings(ProjectChoiceTab.java:558) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.gui.ProjectSettingsPanel.UpdateDialog(ProjectSettingsPanel.java:247) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.projectmanager.ProjectManagerView.propertyChange(ProjectManagerView.java:392) ~[filemanager.jar:?]
+ at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343) ~[?:?]
+ at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:335) ~[?:?]
+ at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268) ~[?:?]
+ at com.st.microxplorer.util.MXPropertyChangeSupport.firePropertyChange(MXPropertyChangeSupport.java:54) ~[STM32CubeMX.jar:?]
+ at com.st.microxplorer.mxsystem.MxSystem.closeConfig(MxSystem.java:899) ~[STM32CubeMX.jar:?]
+ at com.st.microxplorer.maingui.MainPanel.closeConfig(MainPanel.java:792) ~[STM32CubeMX.jar:?]
+ at com.st.microxplorer.plugins.filemanager.engine.OpenFileManager.loadConfigurationFile(OpenFileManager.java:288) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:364) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.filemanager.engine.MainFileManager.userLoadConfig(MainFileManager.java:342) ~[filemanager.jar:?]
+ at com.st.microxplorer.plugins.filemanager.FileManagerView.getSpecificTask(FileManagerView.java:264) ~[filemanager.jar:?]
+ at com.st.stm32cube.common.mx.editor.CubeMxEditor.getMxTabbedPaneInstance(CubeMxEditor.java:1198) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.editor.CubeMxEditor$12$1.createSwingComponent(CubeMxEditor.java:1068) ~[com.st.stm32cube.common.mx_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite.doComponentCreation(EmbeddedSwingComposite.java:492) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.oss.core.awtswtbridge.EmbeddedSwingComposite$4.run(EmbeddedSwingComposite.java:291) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
+ at com.st.stm32cube.common.mx.oss.core.awtswtbridge.AwtEnvironment$2.run(AwtEnvironment.java:166) ~[com.st.stm32cube.common.mx.oss_6.15.0.202507011659/:?]
+ at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) ~[?:?]
+ at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[?:?]
+ at java.awt.EventQueue$4.run(EventQueue.java:720) ~[?:?]
+ at java.awt.EventQueue$4.run(EventQueue.java:714) ~[?:?]
+ at java.security.AccessController.doPrivileged(AccessController.java:400) ~[?:?]
+ at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) ~[?:?]
+ at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[?:?]
+ at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) ~[?:?]
+ at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[?:?]
+ at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ~[?:?]
+2025-09-20 02:28:22,794 [WARN] ThirdParty:871 - waiting for thirdparty lock release [close project]
+2025-09-20 02:28:22,794 [INFO] ThirdParty:873 - entering critical section [close project]
+2025-09-20 02:28:22,794 [INFO] ThirdParty:883 - exiting critical section [close project]
+2025-09-20 02:28:22,798 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 02:28:22,814 [WARN] IpParametersView:155 - Warning: This peripheral hasn't parameters
+2025-09-20 02:28:22,819 [WARN] MainPanel:289 - Warning: This peripheral has no parameters to be configured
+2025-09-20 02:28:22,823 [INFO] UtilMem:75 - Begin LoadConfig() Used Memory: 337899672 Bytes (979369984)
+2025-09-20 02:28:22,824 [INFO] MicroXplorer:468 - Change Database Path :
+2025-09-20 02:28:22,824 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 02:28:22,824 [INFO] OpenFileManager:355 - Change cursor
+2025-09-20 02:28:22,838 [INFO] Mcu:2029 - Initializing MCU STM32F429ZITx STM32F429ZITx STM32F429ZIT6
+2025-09-20 02:28:25,913 [INFO] Context:786 - Trying to add GPIOservice into a context which must be forbidden
+2025-09-20 02:28:26,609 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) Pin101 (VP_RIF_VS_RIF1) cannot be retrieved for this MCU
+2025-09-20 02:28:26,664 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS, mode=CMSIS_V1, owner=FREERTOS
+2025-09-20 02:28:26,664 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS2, mode=CMSIS_V2, owner=FREERTOS
+2025-09-20 02:28:26,664 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V1, owner=FREERTOS
+2025-09-20 02:28:26,664 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V2, owner=FREERTOS
+2025-09-20 02:28:26,664 [WARN] ModelIntegratedComponent:184 - Missing modes for component STMicroelectronics:FreeRTOS:0.0.1:STMicroelectronics:RTOS:FreeRTOS:Core:::10.2.0:
+2025-09-20 02:28:26,680 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,681 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 02:28:26,682 [WARN] ModelPack:524 - Component already loaded: STMicroelectronics:HAL Drivers:0.0.0:STMicroelectronics:Device:STMicro_Driver:XSPI:HAL::0.0.1:HAL_XSPI
+2025-09-20 02:28:26,868 [INFO] ThirdPartyModel:298 - Start build external matchings
+2025-09-20 02:28:27,937 [INFO] ThirdPartyModel:316 - End build external matchings
+2025-09-20 02:28:27,957 [INFO] RtosManager:1018 - Current active RTOS is FREERTOS [Cortex-M4NS]
+2025-09-20 02:28:27,967 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 02:28:27,967 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Invalid parameter (FamilyName)
+2025-09-20 02:28:27,968 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Parameter (RTCHSEDivFreq_Value) has invalid value (4000000)
+2025-09-20 02:28:28,283 [INFO] UtilMem:75 - End LoadConfig() Used Memory: 744418984 Bytes (979369984)
+2025-09-20 02:28:28,308 [WARN] ThirdParty:833 - waiting for thirdparty lock release [change project]
+2025-09-20 02:28:28,309 [INFO] ThirdParty:835 - entering critical section [change project]
+2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-PM33A1 1.0.0
+2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USBPD 4.1
+2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC9 1.0.0
+2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 2.0.0
+2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENVWB1 1.4.0
+2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F4 1.1.0
+2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics LIBJPEG 8.0.0
+2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-ASTRA1 2.0.2
+2025-09-20 02:28:28,309 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSL 5.8.2
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE1 7.1.0
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Avnet-IotConnect X-CUBE-IoTC-DA16k-PMOD 1.0.0
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SMBUS 2.1.0
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfMQTT 1.19.2
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 3.0.0
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ISPU 2.1.0
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-EEPRMA1 5.2.0
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLEMGR 4.1.0
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WB 2.0.0
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST60 1.0.0
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-GNSS1 7.0.1
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC12 1.0.0
+2025-09-20 02:28:28,310 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F7 1.1.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L5 2.0.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOUCHGFX 4.25.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 2.0.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC6 3.1.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :quantropi X-CUBE-qispace-sdk-base 2.1.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FreeRTOS 0.0.1
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G0 1.1.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SAFEA1 1.2.2
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC4 3.0.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SUBG2 5.0.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7RS 1.1.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics STM32_WPAN 1.0.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :EmbeddedOffice I-CUBE-FS-RTOS 1.0.1
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.0.3
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :WES I-CUBE-Cesium 1.4.0
+2025-09-20 02:28:28,311 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Cesanta I-CUBE-Mongoose 7.13.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 1.0.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Infineon AIROC-Wi-Fi-Bluetooth-STM32 1.7.1
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G4 2.0.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-WB05N 2.0.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.1.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.3.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfTPM 3.8.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7 3.4.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DISPLAY 3.0.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSH 1.4.20
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC7 2.0.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TCPP 4.2.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :RealThread X-CUBE-RT-Thread_Nano 4.1.1
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-SIGFOX1 3.2.0
+2025-09-20 02:28:28,312 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC10 1.0.0
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-FREERTOS 1.3.1
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics HAL Drivers 0.0.0
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.16.2
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-IPS 3.1.0
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALS 1.0.2
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :emotas I-CUBE-CANOPEN 1.3.0
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.14.1
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :ITTIA_DB I-CUBE-ITTIADB 8.9.0
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-STSE01 1.0.0
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :portGmbH I-Cube-SoM-uGOAL 1.1.0
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST67W61 1.0.0
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STBOX1 2.1.0
+2025-09-20 02:28:28,313 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AI 10.2.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STAIOTCFT 1.0.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 1.0.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-SMARTAG2 1.2.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-FLIGHT1 5.1.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WL 2.0.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :SEGGER I-CUBE-embOS 1.3.1
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALGOBUILD 1.4.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DPower 1.3.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-MEMS1 11.3.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENV1 5.0.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 1.0.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L4 2.0.0
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 0.0.2
+2025-09-20 02:28:28,314 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.1.2
+2025-09-20 02:28:28,315 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SFXS2LP1 4.0.0
+2025-09-20 02:28:28,315 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE2 3.3.0
+2025-09-20 02:28:28,315 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOF1 3.4.3
+2025-09-20 02:28:28,315 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.2.0
+2025-09-20 02:28:28,316 [INFO] ThirdParty:841 - exiting critical section [change project]
+2025-09-20 02:28:29,200 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 02:28:29,202 [INFO] PinOutPanel:1589 - setPackage(STM32F429ZITx,LQFP144)
+2025-09-20 02:28:30,463 [INFO] UtilMem:75 - Before build in PCC Used Memory: 388951720 Bytes (979369984)
+2025-09-20 02:28:30,890 [INFO] UtilMem:75 - After build in PCC Used Memory: 437186216 Bytes (979369984)
+2025-09-20 02:28:30,900 [INFO] ApiDbMcu:532 - Load IP Config File for FREERTOS
+2025-09-20 02:28:30,907 [INFO] ApiDbMcu:532 - Load IP Config File for USB_HOST
+2025-09-20 02:28:30,978 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,979 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,979 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,979 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,979 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,980 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,981 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,981 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,982 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,983 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,983 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,984 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,984 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,984 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,985 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,986 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,986 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,987 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,987 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,987 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,988 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,988 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,989 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,990 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,990 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,991 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,991 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,992 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,993 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,994 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,995 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,996 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,997 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,997 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,997 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,998 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,998 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,998 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,999 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,999 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:30,999 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,000 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,000 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,000 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,000 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,000 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,001 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,001 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,001 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,001 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,001 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,002 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,002 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,003 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,004 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,005 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,006 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,007 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,009 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,010 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,011 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,012 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,014 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,016 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,018 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,020 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 02:28:31,026 [INFO] ApiDbMcu:532 - Load IP Config File for PDM2PCM
+2025-09-20 02:28:31,050 [WARN] FreeRTOS:1023 - Null or empty value: should not occur! (nothing added to the table)
+2025-09-20 02:28:31,326 [INFO] CADModel:165 - CPN selected for project levelSTM32F429ZIT6
+2025-09-20 02:28:31,326 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 02:28:31,331 [INFO] RtosManager:728 - Active RTOS found at IOC load: FREERTOS [Cortex-M4NS]
+2025-09-20 02:28:31,385 [INFO] OpenFileManager:386 - Restore cursor
+2025-09-20 02:28:31,548 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 03:16:22,966 [INFO] WebAppUi:305 - Path where cad_preferences.json is located /home/ja/.stm32cubeide/
+2025-09-20 03:16:22,966 [INFO] WebAppUi:306 - Updating consent from JSON file
+2025-09-20 03:16:23,086 [INFO] WebApp:403 - JxBrowser engine has been closed
+2025-09-20 03:16:23,086 [INFO] WebAppUi:504 - JxBrowser engine has been closed
+2025-09-20 03:16:23,087 [INFO] WebAppUi:541 - Close the Jxbrowser engine manually
+2025-09-20 03:16:23,814 [ERROR] LogOutputStream:75 - [STDERR_REDIRECT]
+2025-09-20 14:37:35,081 [INFO] Activator:176 -
+
+
+2025-09-20 14:37:35,083 [INFO] Activator:177 - !SESSION log4j initialized
+2025-09-20 14:37:41,375 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT]
+2025-09-20 14:37:44,360 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 14:37:44,399 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 14:37:44,399 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 14:37:44,400 [WARN] ApiDb:259 - Overriding images path with different value: => /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 14:37:44,410 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 14:37:44,413 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 14:37:44,418 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 14:37:44,662 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 14:37:44,768 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 14:37:44,768 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 14:37:44,769 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 14:37:44,769 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 14:37:44,769 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 14:37:44,770 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 14:37:44,770 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 14:37:44,770 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 14:37:44,770 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 14:37:44,771 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 14:37:44,873 [INFO] MainPanel:274 - HeapMemory: 268435456
+2025-09-20 14:37:45,230 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 14:37:45,230 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 14:37:45,230 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 14:37:45,231 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 14:37:45,231 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 14:37:45,231 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 14:37:45,231 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 14:37:45,232 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 14:37:45,232 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 14:37:45,232 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 14:37:45,254 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 14:37:45,257 [INFO] PluginManage:196 - Search for loadable plugins [exclusion list=, ]
+2025-09-20 14:37:45,259 [INFO] PluginManage:310 - Check plugin analytics
+2025-09-20 14:37:45,664 [INFO] AnalyticsPlugin:253 - Accepted Software Licenses: STM32CubeMX.6.15.0
+2025-09-20 14:37:45,665 [INFO] AnalyticsPlugin:255 - Accepted CMSIS Pack Licenses:
+2025-09-20 14:37:45,665 [INFO] AnalyticsPlugin:257 - Accepted Firmware Licenses: FW.F4.1.28.0
+2025-09-20 14:37:45,670 [INFO] PluginManage:359 - Loaded plugin analytics (category:tool,tabindex:-1)
+2025-09-20 14:37:45,671 [INFO] PluginManage:310 - Check plugin cadmodel
+2025-09-20 14:37:45,679 [INFO] CADModel:105 - Init CAD model plugin
+2025-09-20 14:37:45,680 [INFO] PluginManage:359 - Loaded plugin cadmodel (category:power,tabindex:5)
+2025-09-20 14:37:45,680 [INFO] PluginManage:310 - Check plugin clock
+2025-09-20 14:37:45,695 [INFO] PluginManage:359 - Loaded plugin clock (category:base,tabindex:2)
+2025-09-20 14:37:45,695 [INFO] PluginManage:310 - Check plugin ddr
+2025-09-20 14:37:45,698 [INFO] PluginManage:359 - Loaded plugin ddr (category:tool,tabindex:6)
+2025-09-20 14:37:45,698 [INFO] PluginManage:310 - Check plugin filemanager
+2025-09-20 14:37:45,910 [INFO] PluginManage:359 - Loaded plugin filemanager (category:base,tabindex:10)
+2025-09-20 14:37:45,910 [INFO] PluginManage:310 - Check plugin ipmanager
+2025-09-20 14:37:45,918 [INFO] PluginManage:359 - Loaded plugin ipmanager (category:base,tabindex:5)
+2025-09-20 14:37:45,918 [INFO] PluginManage:310 - Check plugin lpbam
+2025-09-20 14:37:45,933 [INFO] PluginManage:359 - Loaded plugin lpbam (category:base,tabindex:0)
+2025-09-20 14:37:45,933 [INFO] PluginManage:310 - Check plugin memorymap
+2025-09-20 14:37:45,952 [INFO] PluginManage:359 - Loaded plugin memorymap (category:base,tabindex:4)
+2025-09-20 14:37:45,952 [INFO] PluginManage:310 - Check plugin pinoutandconfiguration
+2025-09-20 14:37:45,962 [INFO] PluginManage:359 - Loaded plugin pinoutandconfiguration (category:base,tabindex:1)
+2025-09-20 14:37:45,963 [INFO] PluginManage:310 - Check plugin pinoutconfig
+2025-09-20 14:37:46,099 [WARN] SupportedApi:132 - Cannot load RTOS API schema: s4s-elt-must-match.1: The content of 'definitions' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.
+2025-09-20 14:37:46,289 [INFO] PluginManage:359 - Loaded plugin pinoutconfig (category:base,tabindex:0)
+2025-09-20 14:37:46,290 [INFO] PluginManage:310 - Check plugin power
+2025-09-20 14:37:46,305 [INFO] PluginManage:359 - Loaded plugin power (category:power,tabindex:4)
+2025-09-20 14:37:46,305 [INFO] PluginManage:310 - Check plugin projectmanager
+2025-09-20 14:37:46,329 [INFO] PluginManage:359 - Loaded plugin projectmanager (category:projectmanager,tabindex:4)
+2025-09-20 14:37:46,330 [INFO] PluginManage:310 - Check plugin rif
+2025-09-20 14:37:46,342 [INFO] PluginManage:359 - Loaded plugin rif (category:base,tabindex:3)
+2025-09-20 14:37:46,342 [INFO] PluginManage:310 - Check plugin thirdparty
+2025-09-20 14:37:46,530 [WARN] IntegrityCheckThread:84 - waiting for thirdparty lock release [integrity check]
+2025-09-20 14:37:46,531 [INFO] PluginManage:359 - Loaded plugin thirdparty (category:base,tabindex:-1)
+2025-09-20 14:37:46,531 [INFO] IntegrityCheckThread:86 - entering critical section [integrity check]
+2025-09-20 14:37:46,531 [INFO] PluginManage:310 - Check plugin tools
+2025-09-20 14:37:46,531 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [1/15]
+2025-09-20 14:37:46,535 [INFO] PluginManage:359 - Loaded plugin tools (category:base,tabindex:7)
+2025-09-20 14:37:46,536 [INFO] PluginManage:310 - Check plugin tutovideos
+2025-09-20 14:37:46,809 [INFO] PluginManage:359 - Loaded plugin tutovideos (category:base,tabindex:-1)
+2025-09-20 14:37:46,809 [INFO] PluginManage:310 - Check plugin updater
+2025-09-20 14:37:46,836 [INFO] PluginManage:359 - Loaded plugin updater (category:base,tabindex:12)
+2025-09-20 14:37:46,836 [INFO] PluginManage:310 - Check plugin userauth
+2025-09-20 14:37:46,841 [INFO] UserAuth:118 - Init User Auth plugin
+2025-09-20 14:37:46,842 [INFO] PluginManage:359 - Loaded plugin userauth (category:base,tabindex:14)
+2025-09-20 14:37:46,842 [INFO] PluginManage:283 - PluginManage : Loaded plugins [18]
+2025-09-20 14:37:47,072 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 14:37:47,155 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 14:37:47,155 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 14:37:47,170 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,170 [INFO] PluginManager:220 - loadIPPluginJar : add gtzc
+2025-09-20 14:37:47,177 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,177 [INFO] PluginManager:220 - loadIPPluginJar : add usbx
+2025-09-20 14:37:47,178 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,179 [INFO] PluginManager:220 - loadIPPluginJar : add fatfs
+2025-09-20 14:37:47,182 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,182 [INFO] PluginManager:220 - loadIPPluginJar : add i2c
+2025-09-20 14:37:47,184 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,184 [INFO] PluginManager:220 - loadIPPluginJar : add tim
+2025-09-20 14:37:47,185 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,186 [INFO] PluginManager:220 - loadIPPluginJar : add quadspi
+2025-09-20 14:37:47,189 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,190 [INFO] PluginManager:220 - loadIPPluginJar : add ipddr
+2025-09-20 14:37:47,192 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,193 [INFO] PluginManager:220 - loadIPPluginJar : add i2s
+2025-09-20 14:37:47,196 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,196 [INFO] PluginManager:220 - loadIPPluginJar : add openamp
+2025-09-20 14:37:47,199 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,199 [INFO] PluginManager:220 - loadIPPluginJar : add i3c
+2025-09-20 14:37:47,201 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,201 [INFO] PluginManager:220 - loadIPPluginJar : add ucpd
+2025-09-20 14:37:47,204 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,204 [INFO] PluginManager:220 - loadIPPluginJar : add cryp
+2025-09-20 14:37:47,206 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,206 [INFO] PluginManager:220 - loadIPPluginJar : add comp
+2025-09-20 14:37:47,208 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,209 [INFO] PluginManager:220 - loadIPPluginJar : add spi
+2025-09-20 14:37:47,212 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,213 [INFO] PluginManager:220 - loadIPPluginJar : add touchsensing
+2025-09-20 14:37:47,215 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,216 [INFO] PluginManager:220 - loadIPPluginJar : add can
+2025-09-20 14:37:47,218 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,218 [INFO] PluginManager:220 - loadIPPluginJar : add aes
+2025-09-20 14:37:47,227 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,227 [INFO] PluginManager:220 - loadIPPluginJar : add adc
+2025-09-20 14:37:47,232 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,233 [INFO] PluginManager:220 - loadIPPluginJar : add nvic
+2025-09-20 14:37:47,239 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,240 [INFO] PluginManager:220 - loadIPPluginJar : add freertos
+2025-09-20 14:37:47,247 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,247 [INFO] PluginManager:220 - loadIPPluginJar : add dma
+2025-09-20 14:37:47,251 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,251 [INFO] PluginManager:220 - loadIPPluginJar : add resmgrutility
+2025-09-20 14:37:47,254 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,254 [INFO] PluginManager:220 - loadIPPluginJar : add pdm2pcm
+2025-09-20 14:37:47,257 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,257 [INFO] PluginManager:220 - loadIPPluginJar : add hash
+2025-09-20 14:37:47,259 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,260 [INFO] PluginManager:220 - loadIPPluginJar : add dfsdm
+2025-09-20 14:37:47,261 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,262 [INFO] PluginManager:220 - loadIPPluginJar : add radio
+2025-09-20 14:37:47,269 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,273 [INFO] PluginManager:220 - loadIPPluginJar : add plateformsettings
+2025-09-20 14:37:47,279 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,279 [INFO] PluginManager:220 - loadIPPluginJar : add gic
+2025-09-20 14:37:47,281 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,281 [INFO] PluginManager:220 - loadIPPluginJar : add ltdc
+2025-09-20 14:37:47,283 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,283 [INFO] PluginManager:220 - loadIPPluginJar : add tracer_emb
+2025-09-20 14:37:47,286 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,286 [INFO] PluginManager:220 - loadIPPluginJar : add lorawan
+2025-09-20 14:37:47,288 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,288 [INFO] PluginManager:220 - loadIPPluginJar : add tsc
+2025-09-20 14:37:47,290 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,290 [INFO] PluginManager:220 - loadIPPluginJar : add ts
+2025-09-20 14:37:47,292 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,293 [INFO] PluginManager:220 - loadIPPluginJar : add gfxmmu
+2025-09-20 14:37:47,296 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,296 [INFO] PluginManager:220 - loadIPPluginJar : add dma3
+2025-09-20 14:37:47,299 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,299 [INFO] PluginManager:220 - loadIPPluginJar : add ddr_ctrl_phy
+2025-09-20 14:37:47,301 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,301 [INFO] PluginManager:220 - loadIPPluginJar : add genericplugin
+2025-09-20 14:37:47,304 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,304 [INFO] PluginManager:220 - loadIPPluginJar : add opamp
+2025-09-20 14:37:47,312 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,312 [INFO] PluginManager:220 - loadIPPluginJar : add stm32_wpan
+2025-09-20 14:37:47,316 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,316 [INFO] PluginManager:220 - loadIPPluginJar : add usart
+2025-09-20 14:37:47,319 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,319 [INFO] PluginManager:220 - loadIPPluginJar : add sai
+2025-09-20 14:37:47,328 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,328 [INFO] PluginManager:220 - loadIPPluginJar : add linkedlist
+2025-09-20 14:37:47,331 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,331 [INFO] PluginManager:220 - loadIPPluginJar : add extmemmanager
+2025-09-20 14:37:47,336 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,336 [INFO] PluginManager:220 - loadIPPluginJar : add fmc
+2025-09-20 14:37:47,341 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,341 [INFO] PluginManager:220 - loadIPPluginJar : add gpio
+2025-09-20 14:37:47,348 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 14:37:47,348 [INFO] PluginManager:220 - loadIPPluginJar : add mdma
+2025-09-20 14:37:47,458 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:47,494 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 14:37:47,511 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 14:37:47,520 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 14:37:47,520 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 14:37:47,520 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:47,520 [ERROR] CADModel:125 - Updater not yet initialized, retry later
+2025-09-20 14:37:47,705 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:47,707 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 14:37:47,707 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 14:37:47,708 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:47,708 [ERROR] CADModel:125 - Updater not yet initialized, retry later
+2025-09-20 14:37:47,712 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:47,871 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:47,877 [INFO] DbMcusAds:53 - JSON generation date=Tue Jul 08 03:14:23 CDT 2025 (1751962463524)
+2025-09-20 14:37:47,877 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:47,963 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
+2025-09-20 14:37:48,092 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:48,094 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:48,095 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:48,095 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
+2025-09-20 14:37:48,096 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 14:37:48,148 [ERROR] Updater:1198 - MainUpdater not yet initialized. External WinMGr cannot be set.
+2025-09-20 14:37:48,150 [INFO] Updater:1134 - Updater Version found : 6.15.0
+2025-09-20 14:37:48,176 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 14:37:49,186 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 14:37:49,186 [INFO] MainUpdater:3604 - Updater definition file requires update
+2025-09-20 14:37:49,186 [INFO] MainUpdater:289 - Updater Check For Update Now.
+2025-09-20 14:37:49,187 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 14:37:49,193 [INFO] McuFinderGlobals:63 - Set McuFinder mode to 2 (CubeIDE integrated)
+2025-09-20 14:37:49,193 [INFO] UserAuth:487 - Internet connection configuration mode: 1
+2025-09-20 14:37:49,208 [INFO] JxBrowserEngine:152 - Initiate JxBrowser Engine with user profile folder
+2025-09-20 14:37:49,383 [INFO] ServerAccessManage:452 - Complete download http(s) 200
+2025-09-20 14:37:49,384 [INFO] ServerAccessManage:509 - Download File updaters.zip
+2025-09-20 14:37:49,532 [WARN] MainUpdater:1193 - Updater busy. Cannot search thirdparties
+2025-09-20 14:37:49,532 [INFO] ThirdPartyUpdaterWithRetryManager:96 - Updater plugin is busy. [1/15]
+2025-09-20 14:37:49,930 [INFO] FileExtend:248 - Unzip File : updaters.zip
+2025-09-20 14:37:49,931 [INFO] FileExtend:263 - Standard Zip Deflate
+2025-09-20 14:37:50,040 [INFO] WebApp:169 - Instantiating new browser for Auth
+2025-09-20 14:37:50,566 [INFO] ServerAccessManage:452 - Complete download http(s) 200
+2025-09-20 14:37:50,567 [INFO] ServerAccessManage:509 - Download File PacksControlFlags.xml
+2025-09-20 14:37:50,832 [INFO] ServerAccessManage:452 - Complete download http(s) 200
+2025-09-20 14:37:50,832 [INFO] ServerAccessManage:509 - Download File cubemx.pidx
+2025-09-20 14:37:51,200 [INFO] LoadServerUpdatesThread:375 - End of LoadServerUpdate Thread
+2025-09-20 14:37:51,510 [INFO] CheckServerUpdateThread:120 - End of CheckServer Thread
+2025-09-20 14:37:51,831 [INFO] WebApp:463 - Apply proxy settings
+2025-09-20 14:37:51,833 [INFO] WebApp:548 - Chromium requires no authentication
+2025-09-20 14:37:51,852 [INFO] WebApp:491 - Direct internet connection detected
+2025-09-20 14:37:51,884 [INFO] WebApp:900 - Register for checkConnection events
+2025-09-20 14:37:51,884 [INFO] WebApp:463 - Apply proxy settings
+2025-09-20 14:37:51,884 [INFO] WebApp:548 - Chromium requires no authentication
+2025-09-20 14:37:51,885 [INFO] WebApp:491 - Direct internet connection detected
+2025-09-20 14:37:52,172 [INFO] WebApp:225 - Starting web application
+2025-09-20 14:37:52,172 [INFO] WebApp:593 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient1/index.html
+2025-09-20 14:37:52,350 [INFO] UserAuth:487 - Internet connection configuration mode: 1
+2025-09-20 14:37:52,869 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENVWB1.1.4.0
+2025-09-20 14:37:52,889 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-ASTRA1.2.0.2
+2025-09-20 14:37:52,904 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SMBUS.2.1.0
+2025-09-20 14:37:52,921 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST60.1.0.0
+2025-09-20 14:37:53,007 [INFO] WebApp:191 - Connection restablished
+2025-09-20 14:37:53,058 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F7.1.1.0
+2025-09-20 14:37:53,110 [WARN] PackLoader:240 - Cannot read IP mode file for WES.I-CUBE-Cesium.1.4.0
+2025-09-20 14:37:53,191 [WARN] PackLoader:240 - Cannot read IP mode file for Infineon.AIROC-Wi-Fi-Bluetooth-STM32.1.7.1
+2025-09-20 14:37:53,284 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7.3.4.0
+2025-09-20 14:37:53,309 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DISPLAY.3.0.0
+2025-09-20 14:37:53,346 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC10.1.0.0
+2025-09-20 14:37:53,363 [WARN] PackLoader:240 - Cannot read IP mode file for emotas.I-CUBE-CANOPEN.1.3.0
+2025-09-20 14:37:53,387 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STBOX1.2.1.0
+2025-09-20 14:37:53,411 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-SMARTAG2.1.2.0
+2025-09-20 14:37:53,433 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-FLIGHT1.5.1.0
+2025-09-20 14:37:53,460 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 14:37:53,464 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 14:37:53,465 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 14:37:53,465 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 14:37:53,470 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 14:37:53,483 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WL.2.0.0
+2025-09-20 14:37:53,496 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENV1.5.0.0
+2025-09-20 14:37:53,512 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE2.3.3.0
+2025-09-20 14:37:53,527 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC9.1.0.0
+2025-09-20 14:37:53,549 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSL.5.8.2
+2025-09-20 14:37:53,561 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE1.7.1.0
+2025-09-20 14:37:53,570 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfMQTT.1.19.2
+2025-09-20 14:37:53,582 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-EEPRMA1.5.2.0
+2025-09-20 14:37:53,629 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G0.1.1.0
+2025-09-20 14:37:53,646 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SAFEA1.1.2.2
+2025-09-20 14:37:53,655 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC4.3.0.0
+2025-09-20 14:37:53,675 [WARN] PackLoader:240 - Cannot read IP mode file for EmbeddedOffice.I-CUBE-FS-RTOS.1.0.1
+2025-09-20 14:37:53,687 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-WB05N.2.0.0
+2025-09-20 14:37:53,697 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfTPM.3.8.0
+2025-09-20 14:37:53,717 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TCPP.4.2.0
+2025-09-20 14:37:53,733 [WARN] PackLoader:240 - Cannot read IP mode file for RealThread.X-CUBE-RT-Thread_Nano.4.1.1
+2025-09-20 14:37:53,746 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-SIGFOX1.3.2.0
+2025-09-20 14:37:53,760 [WARN] PackLoader:240 - Cannot read IP mode file for ITTIA_DB.I-CUBE-ITTIADB.8.9.0
+2025-09-20 14:37:53,774 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST67W61.1.0.0
+2025-09-20 14:37:53,786 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AI.10.2.0
+2025-09-20 14:37:53,861 [WARN] PackLoader:240 - Cannot read IP mode file for SEGGER.I-CUBE-embOS.1.3.1
+2025-09-20 14:37:53,995 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALGOBUILD.1.4.0
+2025-09-20 14:37:54,180 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-MEMS1.11.3.0
+2025-09-20 14:37:54,522 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-PM33A1.1.0.0
+2025-09-20 14:37:54,573 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F4.1.1.0
+2025-09-20 14:37:54,585 [WARN] PackLoader:240 - Cannot read IP mode file for Avnet-IotConnect.X-CUBE-IoTC-DA16k-PMOD.1.0.0
+2025-09-20 14:37:54,593 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ISPU.2.1.0
+2025-09-20 14:37:54,608 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC12.1.0.0
+2025-09-20 14:37:54,642 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L5.2.0.0
+2025-09-20 14:37:54,659 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC6.3.1.0
+2025-09-20 14:37:54,673 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-FREERTOS.1.3.1
+2025-09-20 14:37:54,683 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STAIOTCFT.1.0.0
+2025-09-20 14:37:54,691 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DPower.1.3.0
+2025-09-20 14:37:54,733 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 14:37:54,735 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L4.2.0.0
+2025-09-20 14:37:54,738 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 14:37:54,739 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 14:37:54,740 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 14:37:54,758 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SFXS2LP1.4.0.0
+2025-09-20 14:37:54,788 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLEMGR.4.1.0
+2025-09-20 14:37:54,826 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 14:37:54,826 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 14:37:54,832 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WB.2.0.0
+2025-09-20 14:37:54,833 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 14:37:54,834 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 14:37:54,835 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 14:37:54,836 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 14:37:54,836 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 14:37:54,847 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-GNSS1.7.0.1
+2025-09-20 14:37:54,855 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOUCHGFX.4.25.0
+2025-09-20 14:37:54,860 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : Cortex-A Device cause : null
+2025-09-20 14:37:54,878 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 14:37:54,879 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 14:37:54,879 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 14:37:54,910 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SUBG2.5.0.0
+2025-09-20 14:37:54,966 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7RS.1.1.0
+2025-09-20 14:37:54,983 [WARN] PackLoader:240 - Cannot read IP mode file for Cesanta.I-CUBE-Mongoose.7.13.0
+2025-09-20 14:37:55,019 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G4.2.0.0
+2025-09-20 14:37:55,027 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSH.1.4.20
+2025-09-20 14:37:55,034 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC7.2.0.0
+2025-09-20 14:37:55,067 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-IPS.3.1.0
+2025-09-20 14:37:55,092 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALS.1.0.2
+2025-09-20 14:37:55,124 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-STSE01.1.0.0
+2025-09-20 14:37:55,141 [WARN] PackLoader:240 - Cannot read IP mode file for portGmbH.I-Cube-SoM-uGOAL.1.1.0
+2025-09-20 14:37:55,173 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOF1.3.4.3
+2025-09-20 14:37:55,199 [INFO] ThirdParty:978 - Integrity check success = true
+2025-09-20 14:37:55,199 [INFO] IntegrityCheckThread:100 - exiting critical section [integrity check]
+2025-09-20 14:37:55,200 [INFO] IntegrityCheckThread:103 - End integrity checks thread
+2025-09-20 22:34:38,849 [INFO] Activator:176 -
+
+
+2025-09-20 22:34:38,851 [INFO] Activator:177 - !SESSION log4j initialized
+2025-09-20 22:34:44,837 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT]
+2025-09-20 22:34:46,885 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 22:34:46,903 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 22:34:46,904 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 22:34:46,904 [WARN] ApiDb:259 - Overriding images path with different value: => /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 22:34:46,909 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 22:34:46,911 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 22:34:46,913 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 22:34:47,064 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 22:34:47,120 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 22:34:47,120 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 22:34:47,121 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 22:34:47,121 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 22:34:47,121 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 22:34:47,121 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 22:34:47,121 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 22:34:47,121 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 22:34:47,121 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 22:34:47,122 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 22:34:47,192 [INFO] MainPanel:274 - HeapMemory: 268435456
+2025-09-20 22:34:47,536 [INFO] DbMcusXml:78 - Set database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//mcu/
+2025-09-20 22:34:47,536 [INFO] ApiDb:274 - Set plugin database path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/boardmanager/
+2025-09-20 22:34:47,537 [INFO] ApiDb:261 - Set plugin images path to: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db//plugins/mcufinder/images/
+2025-09-20 22:34:47,537 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 22:34:47,537 [INFO] ApiDb:250 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 22:34:47,537 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 22:34:47,537 [INFO] DbMcusAds:125 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/
+2025-09-20 22:34:47,537 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 22:34:47,537 [WARN] DbFile:41 - Overriding database path with different value: /home/ja/.stmcufinder/plugins/mcufinder/ => /home/ja/.stmcufinder/plugins/mcufinder
+2025-09-20 22:34:47,538 [INFO] CrossReferenceDbSqlite:203 - Set database path to: /home/ja/.stmcufinder/plugins/mcufinder//mcu/cs/
+2025-09-20 22:34:47,554 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 22:34:47,556 [INFO] PluginManage:196 - Search for loadable plugins [exclusion list=, ]
+2025-09-20 22:34:47,557 [INFO] PluginManage:310 - Check plugin analytics
+2025-09-20 22:34:47,933 [INFO] AnalyticsPlugin:253 - Accepted Software Licenses: STM32CubeMX.6.15.0
+2025-09-20 22:34:47,933 [INFO] AnalyticsPlugin:255 - Accepted CMSIS Pack Licenses:
+2025-09-20 22:34:47,933 [INFO] AnalyticsPlugin:257 - Accepted Firmware Licenses: FW.F4.1.28.0
+2025-09-20 22:34:47,936 [INFO] PluginManage:359 - Loaded plugin analytics (category:tool,tabindex:-1)
+2025-09-20 22:34:47,936 [INFO] PluginManage:310 - Check plugin cadmodel
+2025-09-20 22:34:47,940 [INFO] CADModel:105 - Init CAD model plugin
+2025-09-20 22:34:47,941 [INFO] PluginManage:359 - Loaded plugin cadmodel (category:power,tabindex:5)
+2025-09-20 22:34:47,941 [INFO] PluginManage:310 - Check plugin clock
+2025-09-20 22:34:47,951 [INFO] PluginManage:359 - Loaded plugin clock (category:base,tabindex:2)
+2025-09-20 22:34:47,951 [INFO] PluginManage:310 - Check plugin ddr
+2025-09-20 22:34:47,954 [INFO] PluginManage:359 - Loaded plugin ddr (category:tool,tabindex:6)
+2025-09-20 22:34:47,954 [INFO] PluginManage:310 - Check plugin filemanager
+2025-09-20 22:34:48,100 [INFO] PluginManage:359 - Loaded plugin filemanager (category:base,tabindex:10)
+2025-09-20 22:34:48,101 [INFO] PluginManage:310 - Check plugin ipmanager
+2025-09-20 22:34:48,106 [INFO] PluginManage:359 - Loaded plugin ipmanager (category:base,tabindex:5)
+2025-09-20 22:34:48,106 [INFO] PluginManage:310 - Check plugin lpbam
+2025-09-20 22:34:48,117 [INFO] PluginManage:359 - Loaded plugin lpbam (category:base,tabindex:0)
+2025-09-20 22:34:48,118 [INFO] PluginManage:310 - Check plugin memorymap
+2025-09-20 22:34:48,130 [INFO] PluginManage:359 - Loaded plugin memorymap (category:base,tabindex:4)
+2025-09-20 22:34:48,130 [INFO] PluginManage:310 - Check plugin pinoutandconfiguration
+2025-09-20 22:34:48,140 [INFO] PluginManage:359 - Loaded plugin pinoutandconfiguration (category:base,tabindex:1)
+2025-09-20 22:34:48,140 [INFO] PluginManage:310 - Check plugin pinoutconfig
+2025-09-20 22:34:48,246 [WARN] SupportedApi:132 - Cannot load RTOS API schema: s4s-elt-must-match.1: The content of 'definitions' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.
+2025-09-20 22:34:48,373 [INFO] PluginManage:359 - Loaded plugin pinoutconfig (category:base,tabindex:0)
+2025-09-20 22:34:48,373 [INFO] PluginManage:310 - Check plugin power
+2025-09-20 22:34:48,389 [INFO] PluginManage:359 - Loaded plugin power (category:power,tabindex:4)
+2025-09-20 22:34:48,390 [INFO] PluginManage:310 - Check plugin projectmanager
+2025-09-20 22:34:48,413 [INFO] PluginManage:359 - Loaded plugin projectmanager (category:projectmanager,tabindex:4)
+2025-09-20 22:34:48,413 [INFO] PluginManage:310 - Check plugin rif
+2025-09-20 22:34:48,424 [INFO] PluginManage:359 - Loaded plugin rif (category:base,tabindex:3)
+2025-09-20 22:34:48,425 [INFO] PluginManage:310 - Check plugin thirdparty
+2025-09-20 22:34:48,564 [INFO] PluginManage:359 - Loaded plugin thirdparty (category:base,tabindex:-1)
+2025-09-20 22:34:48,564 [WARN] IntegrityCheckThread:84 - waiting for thirdparty lock release [integrity check]
+2025-09-20 22:34:48,564 [INFO] IntegrityCheckThread:86 - entering critical section [integrity check]
+2025-09-20 22:34:48,564 [INFO] PluginManage:310 - Check plugin tools
+2025-09-20 22:34:48,565 [INFO] ThirdPartyUpdaterWithRetryManager:70 - Updater plugin not ready yet. [1/15]
+2025-09-20 22:34:48,566 [INFO] PluginManage:359 - Loaded plugin tools (category:base,tabindex:7)
+2025-09-20 22:34:48,567 [INFO] PluginManage:310 - Check plugin tutovideos
+2025-09-20 22:34:48,781 [INFO] PluginManage:359 - Loaded plugin tutovideos (category:base,tabindex:-1)
+2025-09-20 22:34:48,781 [INFO] PluginManage:310 - Check plugin updater
+2025-09-20 22:34:48,807 [INFO] PluginManage:359 - Loaded plugin updater (category:base,tabindex:12)
+2025-09-20 22:34:48,807 [INFO] PluginManage:310 - Check plugin userauth
+2025-09-20 22:34:48,811 [INFO] UserAuth:118 - Init User Auth plugin
+2025-09-20 22:34:48,812 [INFO] PluginManage:359 - Loaded plugin userauth (category:base,tabindex:14)
+2025-09-20 22:34:48,813 [INFO] PluginManage:283 - PluginManage : Loaded plugins [18]
+2025-09-20 22:34:49,015 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 22:34:49,108 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 22:34:49,108 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 22:34:49,123 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,123 [INFO] PluginManager:220 - loadIPPluginJar : add gtzc
+2025-09-20 22:34:49,130 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,130 [INFO] PluginManager:220 - loadIPPluginJar : add usbx
+2025-09-20 22:34:49,132 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,132 [INFO] PluginManager:220 - loadIPPluginJar : add fatfs
+2025-09-20 22:34:49,136 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,136 [INFO] PluginManager:220 - loadIPPluginJar : add i2c
+2025-09-20 22:34:49,138 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,138 [INFO] PluginManager:220 - loadIPPluginJar : add tim
+2025-09-20 22:34:49,140 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,140 [INFO] PluginManager:220 - loadIPPluginJar : add quadspi
+2025-09-20 22:34:49,144 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,145 [INFO] PluginManager:220 - loadIPPluginJar : add ipddr
+2025-09-20 22:34:49,147 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,148 [INFO] PluginManager:220 - loadIPPluginJar : add i2s
+2025-09-20 22:34:49,152 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,152 [INFO] PluginManager:220 - loadIPPluginJar : add openamp
+2025-09-20 22:34:49,155 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,155 [INFO] PluginManager:220 - loadIPPluginJar : add i3c
+2025-09-20 22:34:49,157 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,157 [INFO] PluginManager:220 - loadIPPluginJar : add ucpd
+2025-09-20 22:34:49,160 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,160 [INFO] PluginManager:220 - loadIPPluginJar : add cryp
+2025-09-20 22:34:49,162 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,162 [INFO] PluginManager:220 - loadIPPluginJar : add comp
+2025-09-20 22:34:49,164 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,164 [INFO] PluginManager:220 - loadIPPluginJar : add spi
+2025-09-20 22:34:49,169 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,169 [INFO] PluginManager:220 - loadIPPluginJar : add touchsensing
+2025-09-20 22:34:49,172 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,172 [INFO] PluginManager:220 - loadIPPluginJar : add can
+2025-09-20 22:34:49,174 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,175 [INFO] PluginManager:220 - loadIPPluginJar : add aes
+2025-09-20 22:34:49,185 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,185 [INFO] PluginManager:220 - loadIPPluginJar : add adc
+2025-09-20 22:34:49,190 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,191 [INFO] PluginManager:220 - loadIPPluginJar : add nvic
+2025-09-20 22:34:49,198 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,198 [INFO] PluginManager:220 - loadIPPluginJar : add freertos
+2025-09-20 22:34:49,206 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,206 [INFO] PluginManager:220 - loadIPPluginJar : add dma
+2025-09-20 22:34:49,210 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,211 [INFO] PluginManager:220 - loadIPPluginJar : add resmgrutility
+2025-09-20 22:34:49,214 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,214 [INFO] PluginManager:220 - loadIPPluginJar : add pdm2pcm
+2025-09-20 22:34:49,217 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,218 [INFO] PluginManager:220 - loadIPPluginJar : add hash
+2025-09-20 22:34:49,220 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,221 [INFO] PluginManager:220 - loadIPPluginJar : add dfsdm
+2025-09-20 22:34:49,222 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,223 [INFO] PluginManager:220 - loadIPPluginJar : add radio
+2025-09-20 22:34:49,230 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,235 [INFO] PluginManager:220 - loadIPPluginJar : add plateformsettings
+2025-09-20 22:34:49,242 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,242 [INFO] PluginManager:220 - loadIPPluginJar : add gic
+2025-09-20 22:34:49,243 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,243 [INFO] PluginManager:220 - loadIPPluginJar : add ltdc
+2025-09-20 22:34:49,245 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,246 [INFO] PluginManager:220 - loadIPPluginJar : add tracer_emb
+2025-09-20 22:34:49,249 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,249 [INFO] PluginManager:220 - loadIPPluginJar : add lorawan
+2025-09-20 22:34:49,252 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,252 [INFO] PluginManager:220 - loadIPPluginJar : add tsc
+2025-09-20 22:34:49,255 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,255 [INFO] PluginManager:220 - loadIPPluginJar : add ts
+2025-09-20 22:34:49,257 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,257 [INFO] PluginManager:220 - loadIPPluginJar : add gfxmmu
+2025-09-20 22:34:49,260 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,260 [INFO] PluginManager:220 - loadIPPluginJar : add dma3
+2025-09-20 22:34:49,264 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,264 [INFO] PluginManager:220 - loadIPPluginJar : add ddr_ctrl_phy
+2025-09-20 22:34:49,266 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,266 [INFO] PluginManager:220 - loadIPPluginJar : add genericplugin
+2025-09-20 22:34:49,270 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,270 [INFO] PluginManager:220 - loadIPPluginJar : add opamp
+2025-09-20 22:34:49,279 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,279 [INFO] PluginManager:220 - loadIPPluginJar : add stm32_wpan
+2025-09-20 22:34:49,282 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,282 [INFO] PluginManager:220 - loadIPPluginJar : add usart
+2025-09-20 22:34:49,286 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,287 [INFO] PluginManager:220 - loadIPPluginJar : add sai
+2025-09-20 22:34:49,295 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,295 [INFO] PluginManager:220 - loadIPPluginJar : add linkedlist
+2025-09-20 22:34:49,298 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,299 [INFO] PluginManager:220 - loadIPPluginJar : add extmemmanager
+2025-09-20 22:34:49,305 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,305 [INFO] PluginManager:220 - loadIPPluginJar : add fmc
+2025-09-20 22:34:49,311 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,311 [INFO] PluginManager:220 - loadIPPluginJar : add gpio
+2025-09-20 22:34:49,320 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:34:49,321 [INFO] PluginManager:220 - loadIPPluginJar : add mdma
+2025-09-20 22:34:49,445 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:49,511 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 22:34:49,543 [INFO] RulesReader:64 - Compatibility file has been processed (317 Rules)
+2025-09-20 22:34:49,556 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 22:34:49,556 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 22:34:49,556 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:49,557 [ERROR] CADModel:125 - Updater not yet initialized, retry later
+2025-09-20 22:34:49,862 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:49,866 [INFO] CADModel:165 - CPN selected for project level
+2025-09-20 22:34:49,866 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 22:34:49,866 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:49,867 [ERROR] CADModel:125 - Updater not yet initialized, retry later
+2025-09-20 22:34:49,877 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:50,104 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:50,112 [INFO] DbMcusAds:53 - JSON generation date=Tue Jul 08 03:14:23 CDT 2025 (1751962463524)
+2025-09-20 22:34:50,112 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:50,179 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
+2025-09-20 22:34:50,305 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:50,307 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:50,307 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:50,307 [WARN] DetailPanel:346 - Failed to get advertising image, set to default
+2025-09-20 22:34:50,309 [FATAL] Updater:351 - Updater called before beeing initialized
+2025-09-20 22:34:50,360 [ERROR] Updater:1198 - MainUpdater not yet initialized. External WinMGr cannot be set.
+2025-09-20 22:34:50,363 [INFO] Updater:1134 - Updater Version found : 6.15.0
+2025-09-20 22:34:50,390 [INFO] ApplicationProperties:184 - Using Application install path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659
+2025-09-20 22:34:51,222 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 22:34:51,223 [INFO] MainUpdater:289 - Updater Check For Update Now.
+2025-09-20 22:34:51,223 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 22:34:51,231 [INFO] McuFinderGlobals:63 - Set McuFinder mode to 2 (CubeIDE integrated)
+2025-09-20 22:34:51,233 [INFO] UserAuth:487 - Internet connection configuration mode: 1
+2025-09-20 22:34:51,266 [INFO] JxBrowserEngine:152 - Initiate JxBrowser Engine with user profile folder
+2025-09-20 22:34:51,523 [INFO] CheckServerUpdateThread:120 - End of CheckServer Thread
+2025-09-20 22:34:51,906 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENVWB1.1.4.0
+2025-09-20 22:34:51,923 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-ASTRA1.2.0.2
+2025-09-20 22:34:51,939 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SMBUS.2.1.0
+2025-09-20 22:34:51,953 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST60.1.0.0
+2025-09-20 22:34:52,039 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F7.1.1.0
+2025-09-20 22:34:52,063 [WARN] PackLoader:240 - Cannot read IP mode file for WES.I-CUBE-Cesium.1.4.0
+2025-09-20 22:34:52,161 [WARN] PackLoader:240 - Cannot read IP mode file for Infineon.AIROC-Wi-Fi-Bluetooth-STM32.1.7.1
+2025-09-20 22:34:52,275 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7.3.4.0
+2025-09-20 22:34:52,316 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DISPLAY.3.0.0
+2025-09-20 22:34:52,349 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC10.1.0.0
+2025-09-20 22:34:52,371 [WARN] PackLoader:240 - Cannot read IP mode file for emotas.I-CUBE-CANOPEN.1.3.0
+2025-09-20 22:34:52,394 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STBOX1.2.1.0
+2025-09-20 22:34:52,410 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-SMARTAG2.1.2.0
+2025-09-20 22:34:52,417 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-FLIGHT1.5.1.0
+2025-09-20 22:34:52,436 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 22:34:52,437 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 22:34:52,438 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 22:34:52,438 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 22:34:52,441 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT] 1 : Invalid condition id : UX_CORESTACK_Condition cause : null
+2025-09-20 22:34:52,452 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WL.2.0.0
+2025-09-20 22:34:52,462 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-MOTENV1.5.0.0
+2025-09-20 22:34:52,476 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE2.3.3.0
+2025-09-20 22:34:52,490 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC9.1.0.0
+2025-09-20 22:34:52,505 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSL.5.8.2
+2025-09-20 22:34:52,516 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLE1.7.1.0
+2025-09-20 22:34:52,522 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfMQTT.1.19.2
+2025-09-20 22:34:52,532 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-EEPRMA1.5.2.0
+2025-09-20 22:34:52,586 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G0.1.1.0
+2025-09-20 22:34:52,604 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SAFEA1.1.2.2
+2025-09-20 22:34:52,613 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC4.3.0.0
+2025-09-20 22:34:52,637 [WARN] PackLoader:240 - Cannot read IP mode file for EmbeddedOffice.I-CUBE-FS-RTOS.1.0.1
+2025-09-20 22:34:52,647 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-WB05N.2.0.0
+2025-09-20 22:34:52,653 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfTPM.3.8.0
+2025-09-20 22:34:52,682 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TCPP.4.2.0
+2025-09-20 22:34:52,693 [WARN] PackLoader:240 - Cannot read IP mode file for RealThread.X-CUBE-RT-Thread_Nano.4.1.1
+2025-09-20 22:34:52,700 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-ATR-SIGFOX1.3.2.0
+2025-09-20 22:34:52,711 [WARN] PackLoader:240 - Cannot read IP mode file for ITTIA_DB.I-CUBE-ITTIADB.8.9.0
+2025-09-20 22:34:52,718 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ST67W61.1.0.0
+2025-09-20 22:34:52,725 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AI.10.2.0
+2025-09-20 22:34:52,728 [INFO] WebApp:169 - Instantiating new browser for Auth
+2025-09-20 22:34:52,790 [WARN] PackLoader:240 - Cannot read IP mode file for SEGGER.I-CUBE-embOS.1.3.1
+2025-09-20 22:34:52,892 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALGOBUILD.1.4.0
+2025-09-20 22:34:52,994 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-MEMS1.11.3.0
+2025-09-20 22:34:53,592 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-PM33A1.1.0.0
+2025-09-20 22:34:53,673 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-F4.1.1.0
+2025-09-20 22:34:53,684 [WARN] PackLoader:240 - Cannot read IP mode file for Avnet-IotConnect.X-CUBE-IoTC-DA16k-PMOD.1.0.0
+2025-09-20 22:34:53,690 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ISPU.2.1.0
+2025-09-20 22:34:53,704 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC12.1.0.0
+2025-09-20 22:34:53,746 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L5.2.0.0
+2025-09-20 22:34:53,766 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC6.3.1.0
+2025-09-20 22:34:53,781 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-FREERTOS.1.3.1
+2025-09-20 22:34:53,792 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.FP-SNS-STAIOTCFT.1.0.0
+2025-09-20 22:34:53,812 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-DPower.1.3.0
+2025-09-20 22:34:53,862 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 22:34:53,864 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-L4.2.0.0
+2025-09-20 22:34:53,868 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 22:34:53,872 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 22:34:53,874 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : LAN8742 Phy interface Condition cause : null
+2025-09-20 22:34:53,913 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SFXS2LP1.4.0.0
+2025-09-20 22:34:53,975 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-BLEMGR.4.1.0
+2025-09-20 22:34:54,066 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 22:34:54,067 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 22:34:54,089 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-WB.2.0.0
+2025-09-20 22:34:54,095 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 22:34:54,099 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 22:34:54,100 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 22:34:54,106 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 22:34:54,110 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : UX DEVICE CLASS RTOS Condition cause : null
+2025-09-20 22:34:54,133 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-GNSS1.7.0.1
+2025-09-20 22:34:54,145 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOUCHGFX.4.25.0
+2025-09-20 22:34:54,153 [WARN] ConditionMgr:438 - getConditionDescription Invalid condition id : Cortex-A Device cause : null
+2025-09-20 22:34:54,195 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 22:34:54,195 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 22:34:54,196 [WARN] ConditionMgr:1044 - genDependencies : Invalid condition id : Cortex-A Device cause : null
+2025-09-20 22:34:54,224 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-SUBG2.5.0.0
+2025-09-20 22:34:54,309 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-H7RS.1.1.0
+2025-09-20 22:34:54,322 [WARN] PackLoader:240 - Cannot read IP mode file for Cesanta.I-CUBE-Mongoose.7.13.0
+2025-09-20 22:34:54,368 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-AZRTOS-G4.2.0.0
+2025-09-20 22:34:54,398 [WARN] PackLoader:240 - Cannot read IP mode file for wolfSSL.I-CUBE-wolfSSH.1.4.20
+2025-09-20 22:34:54,414 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-NFC7.2.0.0
+2025-09-20 22:34:54,472 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-IPS.3.1.0
+2025-09-20 22:34:54,494 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-ALS.1.0.2
+2025-09-20 22:34:54,508 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-STSE01.1.0.0
+2025-09-20 22:34:54,522 [WARN] PackLoader:240 - Cannot read IP mode file for portGmbH.I-Cube-SoM-uGOAL.1.1.0
+2025-09-20 22:34:54,561 [WARN] PackLoader:240 - Cannot read IP mode file for STMicroelectronics.X-CUBE-TOF1.3.4.3
+2025-09-20 22:34:54,601 [INFO] ThirdParty:978 - Integrity check success = true
+2025-09-20 22:34:54,601 [INFO] IntegrityCheckThread:100 - exiting critical section [integrity check]
+2025-09-20 22:34:54,602 [INFO] IntegrityCheckThread:103 - End integrity checks thread
+2025-09-20 22:34:54,636 [INFO] WebApp:463 - Apply proxy settings
+2025-09-20 22:34:54,637 [INFO] WebApp:548 - Chromium requires no authentication
+2025-09-20 22:34:54,655 [INFO] WebApp:491 - Direct internet connection detected
+2025-09-20 22:34:54,697 [INFO] WebApp:900 - Register for checkConnection events
+2025-09-20 22:34:54,698 [INFO] WebApp:463 - Apply proxy settings
+2025-09-20 22:34:54,698 [INFO] WebApp:548 - Chromium requires no authentication
+2025-09-20 22:34:54,699 [INFO] WebApp:491 - Direct internet connection detected
+2025-09-20 22:34:54,949 [INFO] WebApp:225 - Starting web application
+2025-09-20 22:34:54,950 [INFO] WebApp:593 - Web application path used /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659/db/plugins/mcufinder/reactClient1/index.html
+2025-09-20 22:34:55,089 [INFO] UserAuth:487 - Internet connection configuration mode: 1
+2025-09-20 22:34:55,511 [INFO] WebApp:191 - Connection restablished
+2025-09-20 22:43:22,562 [INFO] McuFinderGlobals:63 - Set McuFinder mode to 2 (CubeIDE integrated)
+2025-09-20 22:43:22,565 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 22:43:22,566 [INFO] MainUpdater:2872 - connection check result : 10
+2025-09-20 22:43:22,612 [INFO] MicroXplorer:468 - Change Database Path :
+2025-09-20 22:43:22,614 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 22:43:22,623 [WARN] ThirdParty:871 - waiting for thirdparty lock release [close project]
+2025-09-20 22:43:22,623 [INFO] ThirdParty:873 - entering critical section [close project]
+2025-09-20 22:43:22,626 [INFO] ThirdParty:883 - exiting critical section [close project]
+2025-09-20 22:43:22,633 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 22:43:22,638 [INFO] UtilMem:75 - Begin LoadConfig() Used Memory: 716525584 Bytes (944766976)
+2025-09-20 22:43:22,646 [INFO] MicroXplorer:468 - Change Database Path :
+2025-09-20 22:43:22,646 [INFO] MicroXplorer:498 - Change Database Version : DB.6.0.150
+2025-09-20 22:43:22,646 [INFO] OpenFileManager:355 - Change cursor
+2025-09-20 22:43:22,743 [INFO] Mcu:2029 - Initializing MCU STM32F429ZITx STM32F429ZITx STM32F429ZIT6
+2025-09-20 22:43:25,399 [INFO] Context:786 - Trying to add GPIOservice into a context which must be forbidden
+2025-09-20 22:43:26,978 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) Pin101 (VP_RIF_VS_RIF1) cannot be retrieved for this MCU
+2025-09-20 22:43:27,171 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS, mode=CMSIS_V1, owner=FREERTOS
+2025-09-20 22:43:27,175 [INFO] RtosManager:558 - Registered RTOS mode: class=CMSIS, group=RTOS2, mode=CMSIS_V2, owner=FREERTOS
+2025-09-20 22:43:27,175 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V1, owner=FREERTOS
+2025-09-20 22:43:27,175 [INFO] RtosManager:558 - Registered RTOS mode: class=RTOS, group=Core, mode=CMSIS_V2, owner=FREERTOS
+2025-09-20 22:43:27,176 [WARN] ModelIntegratedComponent:184 - Missing modes for component STMicroelectronics:FreeRTOS:0.0.1:STMicroelectronics:RTOS:FreeRTOS:Core:::10.2.0:
+2025-09-20 22:43:27,237 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,238 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,238 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,239 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,239 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,239 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,239 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,239 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,240 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,240 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,240 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,240 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,240 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,240 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,241 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,241 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,241 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,241 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,241 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,241 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,242 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,242 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,242 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,242 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,242 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,242 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,243 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,243 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,243 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,243 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,243 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,243 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,244 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,244 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,244 [WARN] ModelIntegratedComponent:63 - No mode defined for component null
+2025-09-20 22:43:27,244 [WARN] ModelPack:524 - Component already loaded: STMicroelectronics:HAL Drivers:0.0.0:STMicroelectronics:Device:STMicro_Driver:XSPI:HAL::0.0.1:HAL_XSPI
+2025-09-20 22:43:27,517 [INFO] ThirdPartyModel:298 - Start build external matchings
+2025-09-20 22:43:28,274 [INFO] ThirdPartyModel:316 - End build external matchings
+2025-09-20 22:43:28,295 [INFO] RtosManager:1018 - Current active RTOS is FREERTOS [Cortex-M4NS]
+2025-09-20 22:43:28,313 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 22:43:28,314 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Invalid parameter (FamilyName)
+2025-09-20 22:43:28,315 [INFO] ImportTextPane:234 - (OptionalMessage_ERROR) IP (RCC) : Parameter (RTCHSEDivFreq_Value) has invalid value (4000000)
+2025-09-20 22:43:28,845 [INFO] ApiDb:581 - Connected to CubeFinder SQLite database (/home/ja/.stmcufinder/plugins/mcufinder/mcu/cube-finder-db.db)
+2025-09-20 22:43:28,931 [INFO] ApiDb:668 - CubeFinder database Data Model version=2.1
+2025-09-20 22:43:28,931 [INFO] ApiDb:669 - CubeFinder database Configuration version=3.0.39
+2025-09-20 22:43:28,931 [INFO] ApiDb:670 - CubeFinder database generation date=2025-08-25 (1756130511)
+2025-09-20 22:43:28,931 [INFO] ApiDb:671 - CubeFinder database FW Pack versions=[FP-ATR-ASTRA1_V2.0.0, FP-SNS-FLIGHT1_V5.1.0, FP-SNS-MOTENV1_V5.0.0, FP-SNS-MOTENVWB1_V1.4.0, FP-SNS-SMARTAG2_V1.2.0, FP-SNS-STBOX1_V2.1.0, STM32Cube_FW_C0_V1.4.0, STM32Cube_FW_F4_V1.28.3, STM32Cube_FW_F7_V1.17.4, STM32Cube_FW_G0_V1.6.2, STM32Cube_FW_G4_V1.6.1, STM32Cube_FW_H5_V1.5.0, STM32Cube_FW_H7RS_V1.2.0, STM32Cube_FW_H7_V1.12.1, STM32Cube_FW_L0_V1.12.2, STM32Cube_FW_L4_V1.18.1, STM32Cube_FW_L5_V1.5.1, STM32Cube_FW_N6_V1.2.0, STM32Cube_FW_U0_V1.3.0, STM32Cube_FW_U3_V1.2.0, STM32Cube_FW_U5_V1.8.0, STM32Cube_FW_WB0_V1.3.0, STM32Cube_FW_WBA_V1.7.0, STM32Cube_FW_WB_V1.23.0, STM32Cube_FW_WL3_V1.2.0, STM32Cube_FW_WL_V1.3.1, X-CUBE-ALGOBUILD_V1.4.0, X-CUBE-ALS_V1.0.2, X-CUBE-AZRTOS-F4_V1.1.0, X-CUBE-AZRTOS-F7_V1.1.0, X-CUBE-AZRTOS-G0_V1.1.0, X-CUBE-AZRTOS-G4_V2.0.0, X-CUBE-AZRTOS-H7RS_V1.1.0, X-CUBE-AZRTOS-H7_V3.4.0, X-CUBE-AZRTOS-L4_V2.0.0, X-CUBE-AZRTOS-L5_V2.0.0, X-CUBE-AZRTOS-WB_V2.0.0, X-CUBE-AZRTOS-WL_V2.0.0, X-CUBE-BLE1_V7.1.0, X-CUBE-BLE2_V3.3.0, X-CUBE-BLEMGR_V4.1.0, X-CUBE-EEPRMA1_V5.2.0, X-CUBE-FREERTOS_V1.3.1, X-CUBE-GNSS1_V6.0.0, X-CUBE-MEMS1_V11.3.0, X-CUBE-NFC4_V3.0.0, X-CUBE-NFC7_V2.0.0, X-CUBE-SFXS2LP1_V4.0.0, X-CUBE-ST67W61_V1.0.0, X-CUBE-SUBG2_V5.0.0, X-CUBE-TOF1_V3.4.3]
+2025-09-20 22:43:29,061 [INFO] DbBoardsSqlite:226 - include board P-NUCLEO-WB55-NUCLEO as a kit item of type 'Nucleo-64'
+2025-09-20 22:43:29,061 [INFO] DbBoardsSqlite:226 - include board P-NUCLEO-WB55-USBDONGLE as a kit item of type 'Nucleo USB Dongle'
+2025-09-20 22:43:29,062 [INFO] DbBoardsSqlite:226 - include board STEVAL-IDP005V1 as a kit item of type 'Evaluation Board'
+2025-09-20 22:43:29,063 [INFO] DbBoardsSqlite:226 - include board STEVAL-IDP005V2 as a kit item of type 'Evaluation Board'
+2025-09-20 22:43:29,220 [INFO] ApiDb:240 - Found 880 in-development CPN: [B-G473E-ZEST1S, B-WB1M-WPAN1, B-WBA5M-WPAN, B-WL5M-SUBG1, NUCLEO-C031C6, NUCLEO-C051C8, NUCLEO-C071RB, NUCLEO-C092RC, NUCLEO-H503RB, NUCLEO-H533RE, NUCLEO-H563ZI, NUCLEO-H7S3L8, NUCLEO-N657X0-Q, NUCLEO-U031R8, NUCLEO-U083RC, NUCLEO-U385RG-Q, NUCLEO-U545RE-Q, NUCLEO-U5A5ZJ-Q, NUCLEO-WB05KZ, NUCLEO-WB07CC, NUCLEO-WB09KE, NUCLEO-WBA52CG, NUCLEO-WBA55CG, NUCLEO-WL33CC1, NUCLEO-WL33CC2, STEVAL-PROTEUS1, STEVAL-SMARTAG2, STEVAL-STWINBX1, STM320518-EVAL, STM32C0116-DK, STM32C011D6Y3TR, STM32C011D6Y6TR, STM32C011F4P3, STM32C011F4P6, STM32C011F4U3, STM32C011F4U6TR, STM32C011F6P3, STM32C011F6P6, STM32C011F6U3, STM32C011F6U6TR, STM32C011J4M3, STM32C011J4M6, STM32C011J6M3, STM32C011J6M6, STM32C0316-DK, STM32C031C4T3, STM32C031C4T6, STM32C031C4U3, STM32C031C4U6, STM32C031C6T3, STM32C031C6T6, STM32C031C6U3, STM32C031C6U6, STM32C031F4P3, STM32C031F4P6, STM32C031F6P3, STM32C031F6P6, STM32C031G4U3, STM32C031G4U6, STM32C031G6U3, STM32C031G6U6, STM32C031K4T3, STM32C031K4T6, STM32C031K4U3, STM32C031K4U6, STM32C031K6T3, STM32C031K6T6, STM32C031K6U3, STM32C031K6U6, STM32C051C6T6, STM32C051C6U6, STM32C051C8T6, STM32C051C8U6, STM32C051D8Y6TR, STM32C051F6P6, STM32C051F8P6, STM32C051G6U6, STM32C051G8U6, STM32C051K6T6, STM32C051K6U6, STM32C051K8T6, STM32C071C8T6, STM32C071C8T6N, STM32C071C8U6, STM32C071C8U6N, STM32C071CBT6, STM32C071CBT6N, STM32C071CBU6, STM32C071CBU6N, STM32C071F8P6, STM32C071F8P6N, STM32C071FBP6, STM32C071FBP6N, STM32C071FBY6TR, STM32C071G8U6, STM32C071G8U6N, STM32C071GBU6, STM32C071GBU6N, STM32C071K8T6, STM32C071K8T6N, STM32C071K8U6, STM32C071K8U6N, STM32C071KBT6, STM32C071KBT6N, STM32C071KBU6, STM32C071KBU6N, STM32C071R8T6, STM32C071R8T6N, STM32C071RBI6N, STM32C071RBT6, STM32C071RBT6N, STM32C091CBT6, STM32C091CBU6, STM32C091CCT6, STM32C091CCU6, STM32C091ECY6TR, STM32C091FBP6, STM32C091FCP6, STM32C091GBU6, STM32C091GCU6, STM32C091KBT6, STM32C091KBU6, STM32C091KCT6, STM32C091KCU6, STM32C091RBT6, STM32C091RCI6, STM32C091RCT6, STM32C092CBT6, STM32C092CBU6, STM32C092CCT6, STM32C092CCU6, STM32C092ECY6TR, STM32C092FBP6, STM32C092FCP6, STM32C092GBU6, STM32C092GCU6, STM32C092KBT6, STM32C092KBU6, STM32C092KCT6, STM32C092KCU6, STM32C092RBT6, STM32C092RCI6, STM32C092RCT6, STM32G071K8TXN, STM32G071K8UXN, STM32G081GBU6N, STM32G081KBT6N, STM32G081KBUXN, STM32G0B1CCT6N, STM32G0B1KCT6, STM32G0B1NEY6TR, STM32G0B1RCT6N, STM32G0C1CCT6, STM32G0C1CCT6N, STM32G0C1CCU6N, STM32G0C1CET6N, STM32G0C1CEU6N, STM32G0C1KCT6, STM32G0C1NEY6TR, STM32G0C1RCI6N, STM32G0C1RCT6N, STM32G0C1REI6N, STM32G0C1RET6N, STM32G0C1VCI6, STM32G0C1VEI6, STM32G411C6T3, STM32G411C6T6, STM32G411C6U3, STM32G411C6U6, STM32G411C8T3, STM32G411C8T6, STM32G411C8U3, STM32G411C8U6, STM32G411CBT3, STM32G411CBT6, STM32G411CBU3, STM32G411CBU6, STM32G411K6T3, STM32G411K6T6, STM32G411K6U3, STM32G411K6U6, STM32G411K8T3, STM32G411K8T6, STM32G411K8U3, STM32G411K8U6, STM32G411KBT3, STM32G411KBT6, STM32G411KBU3, STM32G411KBU6, STM32G411M6T3, STM32G411M6T6, STM32G411M8T3, STM32G411M8T6, STM32G411MBT3, STM32G411MBT6, STM32G411R6T3, STM32G411R6T6, STM32G411R8T3, STM32G411R8T6, STM32G411RBT3, STM32G411RBT6, STM32G414CBT3, STM32G414CBT6, STM32G414CBU3, STM32G414CBU6, STM32G414CCT3, STM32G414CCT6, STM32G414CCU3, STM32G414CCU6, STM32G414MBT3, STM32G414MBT6, STM32G414MCT3, STM32G414MCT6, STM32G414RBT3, STM32G414RBT6, STM32G414RCT3, STM32G414RCT6, STM32G414VBT3, STM32G414VBT6, STM32G414VCT3, STM32G414VCT6, STM32G431CBT3Z, STM32G431RBT3Z, STM32G471CCT6, STM32G471CCU6, STM32G471CET3, STM32G471CET6, STM32G471CEU3, STM32G471CEU6, STM32G471MCT6, STM32G471MET3, STM32G471MET6, STM32G471MEY6TR, STM32G471QCT6, STM32G471QET3, STM32G471RCT6, STM32G471RET3, STM32G471RET6, STM32G471VCH6, STM32G471VCI6, STM32G471VCT6, STM32G471VEH3, STM32G471VEH6, STM32G471VEI3, STM32G471VEI6, STM32G471VET3, STM32G471VET6, STM32G473QET3Z, STM32G473RET3Z, STM32G474CCT6, STM32G491RET3Z, STM32H503CBT6, STM32H503CBU6, STM32H503EBY6TR, STM32H503KBU6, STM32H503RBT6, STM32H523CCT6, STM32H523CCU6, STM32H523CET6, STM32H523CEU6, STM32H523HEY6TR, STM32H523RCT6, STM32H523RET6, STM32H523VCI6, STM32H523VCT6, STM32H523VEI6, STM32H523VET6, STM32H523ZCJ6, STM32H523ZCT6, STM32H523ZEJ6, STM32H523ZET6, STM32H533CET6, STM32H533CEU6, STM32H533HEY6TR, STM32H533RET6, STM32H533VEI6, STM32H533VET6, STM32H533ZEJ6, STM32H533ZET6, STM32H562AGI6, STM32H562AII6, STM32H562IGK6, STM32H562IGT6, STM32H562IIK6, STM32H562IIT6, STM32H562RGT6, STM32H562RGV6, STM32H562RIT6, STM32H562RIV6, STM32H562VGT6, STM32H562VIT6, STM32H562ZGT6, STM32H562ZIT6, STM32H563AGI6, STM32H563AII3Q, STM32H563AII6, STM32H563IGK6, STM32H563IGT6, STM32H563IIK3Q, STM32H563IIK6, STM32H563IIT3Q, STM32H563IIT6, STM32H563MIY3QTR, STM32H563RGT6, STM32H563RGV6, STM32H563RIT6, STM32H563RIV6, STM32H563VGT6, STM32H563VIT3Q, STM32H563VIT6, STM32H563ZGT6, STM32H563ZIT3Q, STM32H563ZIT6, STM32H573AII3Q, STM32H573AII6, STM32H573I-DK, STM32H573IIK3Q, STM32H573IIK6, STM32H573IIT3Q, STM32H573IIT6, STM32H573MIY3QTR, STM32H573RIT6, STM32H573RIV6, STM32H573VIT3Q, STM32H573VIT6, STM32H573ZIT3Q, STM32H573ZIT6, STM32H7R3A8I6, STM32H7R3I8K6, STM32H7R3I8T6, STM32H7R3L8H6, STM32H7R3L8H6H, STM32H7R3R8V6, STM32H7R3V8H6, STM32H7R3V8T6, STM32H7R3V8Y6TR, STM32H7R3Z8J6, STM32H7R3Z8T6, STM32H7R7A8I6, STM32H7R7I8K6, STM32H7R7I8T6, STM32H7R7L8H6, STM32H7R7L8H6H, STM32H7R7Z8J6, STM32H7S3A8I6, STM32H7S3I8K6, STM32H7S3I8T6, STM32H7S3L8H6, STM32H7S3L8H6H, STM32H7S3R8V6, STM32H7S3V8H6, STM32H7S3V8T6, STM32H7S3V8Y6TR, STM32H7S3Z8J6, STM32H7S3Z8T6, STM32H7S78-DK, STM32H7S7A8I6, STM32H7S7I8K6, STM32H7S7I8T6, STM32H7S7L8H6, STM32H7S7L8H6H, STM32H7S7Z8J6, STM32L4R5QGI6STR, STM32MP131AAE3, STM32MP131AAF3, STM32MP131AAG3, STM32MP131CAE3, STM32MP131CAF3, STM32MP131CAG3, STM32MP131DAE7, STM32MP131DAF7, STM32MP131DAG7, STM32MP131FAE7, STM32MP131FAF7, STM32MP131FAG7, STM32MP133AAE3, STM32MP133AAF3, STM32MP133AAG3, STM32MP133CAE3, STM32MP133CAF3, STM32MP133CAG3, STM32MP133DAE7, STM32MP133DAF7, STM32MP133DAG7, STM32MP133FAE7, STM32MP133FAF7, STM32MP133FAG7, STM32MP135AAE3, STM32MP135AAF3, STM32MP135AAG3, STM32MP135CAE3, STM32MP135CAF3, STM32MP135CAG3, STM32MP135DAE7, STM32MP135DAF7, STM32MP135DAG7, STM32MP135F-DK, STM32MP135FAE7, STM32MP135FAF7, STM32MP135FAF7T, STM32MP135FAF7U, STM32MP135FAG7, STM32MP211AAL3, STM32MP211AAM3, STM32MP211AAN3, STM32MP211AAO3, STM32MP211CAL3, STM32MP211CAM3, STM32MP211CAN3, STM32MP211CAO3, STM32MP211DAL3, STM32MP211DAM3, STM32MP211DAN3, STM32MP211DAO3, STM32MP211FAL3, STM32MP211FAM3, STM32MP211FAN3, STM32MP211FAO3, STM32MP213AAL3, STM32MP213AAM3, STM32MP213AAN3, STM32MP213AAO3, STM32MP213CAL3, STM32MP213CAM3, STM32MP213CAN3, STM32MP213CAO3, STM32MP213DAL3, STM32MP213DAM3, STM32MP213DAN3, STM32MP213DAO3, STM32MP213FAL3, STM32MP213FAM3, STM32MP213FAN3, STM32MP213FAO3, STM32MP215AAL3, STM32MP215AAM3, STM32MP215AAN3, STM32MP215AAO3, STM32MP215CAL3, STM32MP215CAM3, STM32MP215CAN3, STM32MP215CAO3, STM32MP215DAL3, STM32MP215DAM3, STM32MP215DAN3, STM32MP215DAO3, STM32MP215F-DK, STM32MP215FAL3, STM32MP215FAM3, STM32MP215FAN3, STM32MP215FAO3, STM32MP231AAJ3, STM32MP231AAK3, STM32MP231AAL3, STM32MP231CAJ3, STM32MP231CAK3, STM32MP231CAL3, STM32MP231DAJ3, STM32MP231DAK3, STM32MP231DAL3, STM32MP231FAJ3, STM32MP231FAK3, STM32MP231FAL3, STM32MP233AAJ3, STM32MP233AAK3, STM32MP233AAL3, STM32MP233CAJ3, STM32MP233CAK3, STM32MP233CAL3, STM32MP233DAJ3, STM32MP233DAK3, STM32MP233DAL3, STM32MP233FAJ3, STM32MP233FAK3, STM32MP233FAL3, STM32MP235AAJ3, STM32MP235AAK3, STM32MP235AAL3, STM32MP235CAJ3, STM32MP235CAK3, STM32MP235CAL3, STM32MP235DAJ3, STM32MP235DAK3, STM32MP235DAL3, STM32MP235FAJ3, STM32MP235FAK3, STM32MP235FAL3, STM32MP251AAI3, STM32MP251AAK3, STM32MP251AAL3, STM32MP251CAI3, STM32MP251CAK3, STM32MP251CAL3, STM32MP251DAI3, STM32MP251DAK3, STM32MP251DAL3, STM32MP251FAI3, STM32MP251FAK3, STM32MP251FAL3, STM32MP253AAI3, STM32MP253AAK3, STM32MP253AAL3, STM32MP253CAI3, STM32MP253CAK3, STM32MP253CAL3, STM32MP253DAI3, STM32MP253DAK3, STM32MP253DAL3, STM32MP253FAI3, STM32MP253FAK3, STM32MP253FAL3, STM32MP255AAI3, STM32MP255AAK3, STM32MP255AAL3, STM32MP255CAI3, STM32MP255CAK3, STM32MP255CAL3, STM32MP255DAI3, STM32MP255DAK3, STM32MP255DAL3, STM32MP255FAI3, STM32MP255FAK3, STM32MP255FAL3, STM32MP257AAI3, STM32MP257AAK3, STM32MP257AAL3, STM32MP257CAI3, STM32MP257CAK3, STM32MP257CAL3, STM32MP257DAI3, STM32MP257DAK3, STM32MP257DAL3, STM32MP257F-DK, STM32MP257F-EV1, STM32MP257FAI3, STM32MP257FAK3, STM32MP257FAL3, STM32N645A0H3Q, STM32N645B0H3Q, STM32N645I0H3Q, STM32N645L0H3Q, STM32N645X0H3Q, STM32N645Z0H3Q, STM32N647A0H3Q, STM32N647B0H3Q, STM32N647I0H3Q, STM32N647L0H3Q, STM32N647X0H3Q, STM32N647Z0H3Q, STM32N655A0H3Q, STM32N655B0H3Q, STM32N655I0H3Q, STM32N655L0H3Q, STM32N655X0H3Q, STM32N655Z0H3Q, STM32N6570-DK, STM32N657A0H3Q, STM32N657B0H3Q, STM32N657I0H3Q, STM32N657L0H3Q, STM32N657X0H3Q, STM32N657Z0H3Q, STM32U031C6T6, STM32U031C6U6, STM32U031C8T6, STM32U031C8U6, STM32U031F4P6, STM32U031F6P6, STM32U031F8P6, STM32U031G6Y6TR, STM32U031G8Y6TR, STM32U031K4U6, STM32U031K6U6, STM32U031K8U6, STM32U031R6I6, STM32U031R6T6, STM32U031R8I6, STM32U031R8T6, STM32U073C8T6, STM32U073C8U6, STM32U073CBT6, STM32U073CBU6, STM32U073CCT6, STM32U073CCU6, STM32U073H8Y6TR, STM32U073HBY6TR, STM32U073HCY6TR, STM32U073K8U6, STM32U073KBU6, STM32U073KCU6, STM32U073M8I6, STM32U073M8T6, STM32U073MBI6, STM32U073MBT6, STM32U073MCI6, STM32U073MCT6, STM32U073R8I6, STM32U073R8T6, STM32U073RBI6, STM32U073RBT6, STM32U073RCI6, STM32U073RCT6, STM32U083C-DK, STM32U083CCT6, STM32U083CCU6, STM32U083HCY6TR, STM32U083KCU6, STM32U083MCI6, STM32U083MCT6, STM32U083RCI6, STM32U083RCT6, STM32U375CET6, STM32U375CET6Q, STM32U375CEU6, STM32U375CEU6Q, STM32U375CEY6QTR, STM32U375CGT6, STM32U375CGT6Q, STM32U375CGU6, STM32U375CGU6Q, STM32U375CGY6QTR, STM32U375KEU6, STM32U375KGU6, STM32U375REI6, STM32U375REI6Q, STM32U375RET6, STM32U375RET6Q, STM32U375REY6GTR, STM32U375REY6QTR, STM32U375RGI6, STM32U375RGI6Q, STM32U375RGT6, STM32U375RGT6Q, STM32U375RGY6GTR, STM32U375RGY6QTR, STM32U375VEI6, STM32U375VEI6Q, STM32U375VET6, STM32U375VET6Q, STM32U375VGI6, STM32U375VGI6Q, STM32U375VGT6, STM32U375VGT6Q, STM32U385CGT6, STM32U385CGT6Q, STM32U385CGU6, STM32U385CGU6Q, STM32U385CGY6QTR, STM32U385KGU6, STM32U385RGI6, STM32U385RGI6Q, STM32U385RGT6, STM32U385RGT6Q, STM32U385RGY6GTR, STM32U385RGY6QTR, STM32U385VGI6, STM32U385VGI6Q, STM32U385VGT6, STM32U385VGT6Q, STM32U535CBT6, STM32U535CBT6Q, STM32U535CBU6, STM32U535CBU6Q, STM32U535CCT6, STM32U535CCT6Q, STM32U535CCU6, STM32U535CCU6Q, STM32U535CET6, STM32U535CET6Q, STM32U535CEU6, STM32U535CEU6Q, STM32U535JEY6QTR, STM32U535NCY6QTR, STM32U535NEY6QTR, STM32U535RBI6, STM32U535RBI6Q, STM32U535RBT6, STM32U535RBT6Q, STM32U535RCI6, STM32U535RCI6Q, STM32U535RCT6, STM32U535RCT6Q, STM32U535REI6, STM32U535REI6Q, STM32U535RET6, STM32U535RET6Q, STM32U535VCI6, STM32U535VCI6Q, STM32U535VCT6, STM32U535VCT6Q, STM32U535VEI6, STM32U535VEI6Q, STM32U535VET6, STM32U535VET6Q, STM32U545CET6, STM32U545CET6Q, STM32U545CEU6, STM32U545CEU6Q, STM32U545JEY6QTR, STM32U545NEY6QTR, STM32U545REI6, STM32U545REI6Q, STM32U545RET6, STM32U545RET6Q, STM32U545VEI6, STM32U545VEI6Q, STM32U545VET6, STM32U545VET6Q, STM32U595AIH6, STM32U595AIH6Q, STM32U595AJH6, STM32U595AJH6Q, STM32U595QII6, STM32U595QII6Q, STM32U595QJI6, STM32U595QJI6Q, STM32U595RIT6, STM32U595RIT6Q, STM32U595RJT6, STM32U595RJT6Q, STM32U595VIT6, STM32U595VIT6Q, STM32U595VJT6, STM32U595VJT6Q, STM32U595ZIT6, STM32U595ZIT6Q, STM32U595ZIY6QTR, STM32U595ZJT6, STM32U595ZJT6Q, STM32U595ZJY6QTR, STM32U599BJY6QTR, STM32U599NIH6Q, STM32U599NJH6Q, STM32U599VIT6Q, STM32U599VJT6, STM32U599VJT6Q, STM32U599ZIT6Q, STM32U599ZIY6QTR, STM32U599ZJT6Q, STM32U599ZJY6QTR, STM32U5A5AJH6, STM32U5A5AJH6Q, STM32U5A5QII3Q , STM32U5A5QJI6, STM32U5A5QJI6Q, STM32U5A5RJT6, STM32U5A5RJT6Q, STM32U5A5VJT6, STM32U5A5VJT6Q, STM32U5A5ZJT6, STM32U5A5ZJT6Q, STM32U5A5ZJY6QTR, STM32U5A9BJY6QTR, STM32U5A9J-DK, STM32U5A9NJH6Q, STM32U5A9VJT6Q, STM32U5A9ZJT6Q, STM32U5A9ZJY6QTR, STM32U5F7VIT6, STM32U5F7VIT6Q, STM32U5F7VJT6, STM32U5F7VJT6Q, STM32U5F9BJY6QTR, STM32U5F9NJH6Q, STM32U5F9VIT6Q, STM32U5F9VJT6Q, STM32U5F9ZIJ6QTR, STM32U5F9ZIT6Q, STM32U5F9ZJJ6QTR, STM32U5F9ZJT6Q, STM32U5G7VJT6, STM32U5G7VJT6Q, STM32U5G9BJY6QTR, STM32U5G9J-DK1, STM32U5G9J-DK2, STM32U5G9NJH6Q, STM32U5G9VJT6Q, STM32U5G9ZJJ6QTR, STM32U5G9ZJT6Q, STM32WB05KZV6TR, STM32WB05KZV7TR, STM32WB05TZF6TR, STM32WB05TZF7TR, STM32WB06CCF6TR, STM32WB06CCF7TR, STM32WB06CCV6TR, STM32WB06CCV7TR, STM32WB06KCV6TR, STM32WB06KCV7TR, STM32WB07CCF6TR, STM32WB07CCF7TR, STM32WB07CCV6TR, STM32WB07CCV7TR, STM32WB07KCV6TR, STM32WB07KCV7TR, STM32WB09KEV6TR, STM32WB09KEV7TR, STM32WB09TEF6TR, STM32WB09TEF7TR, STM32WB1MMCH6, STM32WBA50KGU6, STM32WBA50KGU6TR, STM32WBA52CEU6, STM32WBA52CEU6TR, STM32WBA52CEU7, STM32WBA52CEU7TR, STM32WBA52CGU6, STM32WBA52CGU6TR, STM32WBA52CGU6U, STM32WBA52CGU7, STM32WBA52CGU7TR, STM32WBA52KEU6, STM32WBA52KEU6TR, STM32WBA52KGU6, STM32WBA52KGU6TR, STM32WBA54CEU6, STM32WBA54CEU6TR, STM32WBA54CEU7, STM32WBA54CEU7TR, STM32WBA54CGU6, STM32WBA54CGU6TR, STM32WBA54CGU7, STM32WBA54CGU7TR, STM32WBA54KEU6, STM32WBA54KEU6TR, STM32WBA54KEU7, STM32WBA54KEU7TR, STM32WBA54KGU6, STM32WBA54KGU6TR, STM32WBA54KGU7, STM32WBA54KGU7TR, STM32WBA55CEU6, STM32WBA55CEU6TR, STM32WBA55CEU7, STM32WBA55CEU7TR, STM32WBA55CGU6, STM32WBA55CGU6TR, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CGU7TR, STM32WBA55G-DK1, STM32WBA55HEF6, STM32WBA55HEF7, STM32WBA55HGF6, STM32WBA55HGF7, STM32WBA55UEI6, STM32WBA55UEI6TR, STM32WBA55UEI7, STM32WBA55UEI7TR, STM32WBA55UGI6, STM32WBA55UGI6TR, STM32WBA55UGI7, STM32WBA55UGI7TR, STM32WBA5MMGH6TR, STM32WBA62MGF6, STM32WBA62MIF6, STM32WBA65MGF7, STM32WBA65MIF6, STM32WBA65MIF7, STM32WL30K8V6, STM32WL30KBV6, STM32WL31C8V6, STM32WL31CBV6, STM32WL31K8V6, STM32WL31KBV6, STM32WL33C8V6, STM32WL33C8V6X, STM32WL33CBV6, STM32WL33CBV6X, STM32WL33CCV6, STM32WL33CCV6A, STM32WL33CCV6X, STM32WL33K8V7, STM32WL33K8V7X, STM32WL33KBV7 , STM32WL33KBV7X, STM32WL33KCV7, STM32WL33KCV7X, STM32WL5MOCH6, STM32WL5MOCH6TR]
+2025-09-20 22:43:29,431 [INFO] BoardInfo:889 - No configuration file found for board P-NUCLEO-WB55
+2025-09-20 22:43:29,432 [INFO] DbBoards:161 - Kit is not supported: P-NUCLEO-WB55
+2025-09-20 22:43:29,439 [INFO] BoardInfo:889 - No configuration file found for board STEVAL-BFA001V1B
+2025-09-20 22:43:29,440 [INFO] DbBoards:161 - Kit is not supported: STEVAL-BFA001V1B
+2025-09-20 22:43:29,442 [INFO] BoardInfo:889 - No configuration file found for board STEVAL-BFA001V2B
+2025-09-20 22:43:29,442 [INFO] DbBoards:161 - Kit is not supported: STEVAL-BFA001V2B
+2025-09-20 22:43:29,628 [INFO] DbBoards:168 - Found 212 boards, 209 are supported
+2025-09-20 22:43:29,629 [INFO] DbBoards:169 - Found 212 boards, 43 of them is supported for Bsp
+2025-09-20 22:43:29,634 [INFO] ApiDb:668 - CubeFinder database Data Model version=2.1
+2025-09-20 22:43:29,635 [INFO] ApiDb:669 - CubeFinder database Configuration version=3.0.39
+2025-09-20 22:43:29,635 [INFO] ApiDb:670 - CubeFinder database generation date=2025-08-25 (1756130511)
+2025-09-20 22:43:29,635 [INFO] ApiDb:671 - CubeFinder database FW Pack versions=[FP-ATR-ASTRA1_V2.0.0, FP-SNS-FLIGHT1_V5.1.0, FP-SNS-MOTENV1_V5.0.0, FP-SNS-MOTENVWB1_V1.4.0, FP-SNS-SMARTAG2_V1.2.0, FP-SNS-STBOX1_V2.1.0, STM32Cube_FW_C0_V1.4.0, STM32Cube_FW_F4_V1.28.3, STM32Cube_FW_F7_V1.17.4, STM32Cube_FW_G0_V1.6.2, STM32Cube_FW_G4_V1.6.1, STM32Cube_FW_H5_V1.5.0, STM32Cube_FW_H7RS_V1.2.0, STM32Cube_FW_H7_V1.12.1, STM32Cube_FW_L0_V1.12.2, STM32Cube_FW_L4_V1.18.1, STM32Cube_FW_L5_V1.5.1, STM32Cube_FW_N6_V1.2.0, STM32Cube_FW_U0_V1.3.0, STM32Cube_FW_U3_V1.2.0, STM32Cube_FW_U5_V1.8.0, STM32Cube_FW_WB0_V1.3.0, STM32Cube_FW_WBA_V1.7.0, STM32Cube_FW_WB_V1.23.0, STM32Cube_FW_WL3_V1.2.0, STM32Cube_FW_WL_V1.3.1, X-CUBE-ALGOBUILD_V1.4.0, X-CUBE-ALS_V1.0.2, X-CUBE-AZRTOS-F4_V1.1.0, X-CUBE-AZRTOS-F7_V1.1.0, X-CUBE-AZRTOS-G0_V1.1.0, X-CUBE-AZRTOS-G4_V2.0.0, X-CUBE-AZRTOS-H7RS_V1.1.0, X-CUBE-AZRTOS-H7_V3.4.0, X-CUBE-AZRTOS-L4_V2.0.0, X-CUBE-AZRTOS-L5_V2.0.0, X-CUBE-AZRTOS-WB_V2.0.0, X-CUBE-AZRTOS-WL_V2.0.0, X-CUBE-BLE1_V7.1.0, X-CUBE-BLE2_V3.3.0, X-CUBE-BLEMGR_V4.1.0, X-CUBE-EEPRMA1_V5.2.0, X-CUBE-FREERTOS_V1.3.1, X-CUBE-GNSS1_V6.0.0, X-CUBE-MEMS1_V11.3.0, X-CUBE-NFC4_V3.0.0, X-CUBE-NFC7_V2.0.0, X-CUBE-SFXS2LP1_V4.0.0, X-CUBE-ST67W61_V1.0.0, X-CUBE-SUBG2_V5.0.0, X-CUBE-TOF1_V3.4.3]
+2025-09-20 22:43:33,496 [INFO] ApiDb:240 - Found 880 in-development CPN: [B-G473E-ZEST1S, B-WB1M-WPAN1, B-WBA5M-WPAN, B-WL5M-SUBG1, NUCLEO-C031C6, NUCLEO-C051C8, NUCLEO-C071RB, NUCLEO-C092RC, NUCLEO-H503RB, NUCLEO-H533RE, NUCLEO-H563ZI, NUCLEO-H7S3L8, NUCLEO-N657X0-Q, NUCLEO-U031R8, NUCLEO-U083RC, NUCLEO-U385RG-Q, NUCLEO-U545RE-Q, NUCLEO-U5A5ZJ-Q, NUCLEO-WB05KZ, NUCLEO-WB07CC, NUCLEO-WB09KE, NUCLEO-WBA52CG, NUCLEO-WBA55CG, NUCLEO-WL33CC1, NUCLEO-WL33CC2, STEVAL-PROTEUS1, STEVAL-SMARTAG2, STEVAL-STWINBX1, STM320518-EVAL, STM32C0116-DK, STM32C011D6Y3TR, STM32C011D6Y6TR, STM32C011F4P3, STM32C011F4P6, STM32C011F4U3, STM32C011F4U6TR, STM32C011F6P3, STM32C011F6P6, STM32C011F6U3, STM32C011F6U6TR, STM32C011J4M3, STM32C011J4M6, STM32C011J6M3, STM32C011J6M6, STM32C0316-DK, STM32C031C4T3, STM32C031C4T6, STM32C031C4U3, STM32C031C4U6, STM32C031C6T3, STM32C031C6T6, STM32C031C6U3, STM32C031C6U6, STM32C031F4P3, STM32C031F4P6, STM32C031F6P3, STM32C031F6P6, STM32C031G4U3, STM32C031G4U6, STM32C031G6U3, STM32C031G6U6, STM32C031K4T3, STM32C031K4T6, STM32C031K4U3, STM32C031K4U6, STM32C031K6T3, STM32C031K6T6, STM32C031K6U3, STM32C031K6U6, STM32C051C6T6, STM32C051C6U6, STM32C051C8T6, STM32C051C8U6, STM32C051D8Y6TR, STM32C051F6P6, STM32C051F8P6, STM32C051G6U6, STM32C051G8U6, STM32C051K6T6, STM32C051K6U6, STM32C051K8T6, STM32C071C8T6, STM32C071C8T6N, STM32C071C8U6, STM32C071C8U6N, STM32C071CBT6, STM32C071CBT6N, STM32C071CBU6, STM32C071CBU6N, STM32C071F8P6, STM32C071F8P6N, STM32C071FBP6, STM32C071FBP6N, STM32C071FBY6TR, STM32C071G8U6, STM32C071G8U6N, STM32C071GBU6, STM32C071GBU6N, STM32C071K8T6, STM32C071K8T6N, STM32C071K8U6, STM32C071K8U6N, STM32C071KBT6, STM32C071KBT6N, STM32C071KBU6, STM32C071KBU6N, STM32C071R8T6, STM32C071R8T6N, STM32C071RBI6N, STM32C071RBT6, STM32C071RBT6N, STM32C091CBT6, STM32C091CBU6, STM32C091CCT6, STM32C091CCU6, STM32C091ECY6TR, STM32C091FBP6, STM32C091FCP6, STM32C091GBU6, STM32C091GCU6, STM32C091KBT6, STM32C091KBU6, STM32C091KCT6, STM32C091KCU6, STM32C091RBT6, STM32C091RCI6, STM32C091RCT6, STM32C092CBT6, STM32C092CBU6, STM32C092CCT6, STM32C092CCU6, STM32C092ECY6TR, STM32C092FBP6, STM32C092FCP6, STM32C092GBU6, STM32C092GCU6, STM32C092KBT6, STM32C092KBU6, STM32C092KCT6, STM32C092KCU6, STM32C092RBT6, STM32C092RCI6, STM32C092RCT6, STM32G071K8TXN, STM32G071K8UXN, STM32G081GBU6N, STM32G081KBT6N, STM32G081KBUXN, STM32G0B1CCT6N, STM32G0B1KCT6, STM32G0B1NEY6TR, STM32G0B1RCT6N, STM32G0C1CCT6, STM32G0C1CCT6N, STM32G0C1CCU6N, STM32G0C1CET6N, STM32G0C1CEU6N, STM32G0C1KCT6, STM32G0C1NEY6TR, STM32G0C1RCI6N, STM32G0C1RCT6N, STM32G0C1REI6N, STM32G0C1RET6N, STM32G0C1VCI6, STM32G0C1VEI6, STM32G411C6T3, STM32G411C6T6, STM32G411C6U3, STM32G411C6U6, STM32G411C8T3, STM32G411C8T6, STM32G411C8U3, STM32G411C8U6, STM32G411CBT3, STM32G411CBT6, STM32G411CBU3, STM32G411CBU6, STM32G411K6T3, STM32G411K6T6, STM32G411K6U3, STM32G411K6U6, STM32G411K8T3, STM32G411K8T6, STM32G411K8U3, STM32G411K8U6, STM32G411KBT3, STM32G411KBT6, STM32G411KBU3, STM32G411KBU6, STM32G411M6T3, STM32G411M6T6, STM32G411M8T3, STM32G411M8T6, STM32G411MBT3, STM32G411MBT6, STM32G411R6T3, STM32G411R6T6, STM32G411R8T3, STM32G411R8T6, STM32G411RBT3, STM32G411RBT6, STM32G414CBT3, STM32G414CBT6, STM32G414CBU3, STM32G414CBU6, STM32G414CCT3, STM32G414CCT6, STM32G414CCU3, STM32G414CCU6, STM32G414MBT3, STM32G414MBT6, STM32G414MCT3, STM32G414MCT6, STM32G414RBT3, STM32G414RBT6, STM32G414RCT3, STM32G414RCT6, STM32G414VBT3, STM32G414VBT6, STM32G414VCT3, STM32G414VCT6, STM32G431CBT3Z, STM32G431RBT3Z, STM32G471CCT6, STM32G471CCU6, STM32G471CET3, STM32G471CET6, STM32G471CEU3, STM32G471CEU6, STM32G471MCT6, STM32G471MET3, STM32G471MET6, STM32G471MEY6TR, STM32G471QCT6, STM32G471QET3, STM32G471RCT6, STM32G471RET3, STM32G471RET6, STM32G471VCH6, STM32G471VCI6, STM32G471VCT6, STM32G471VEH3, STM32G471VEH6, STM32G471VEI3, STM32G471VEI6, STM32G471VET3, STM32G471VET6, STM32G473QET3Z, STM32G473RET3Z, STM32G474CCT6, STM32G491RET3Z, STM32H503CBT6, STM32H503CBU6, STM32H503EBY6TR, STM32H503KBU6, STM32H503RBT6, STM32H523CCT6, STM32H523CCU6, STM32H523CET6, STM32H523CEU6, STM32H523HEY6TR, STM32H523RCT6, STM32H523RET6, STM32H523VCI6, STM32H523VCT6, STM32H523VEI6, STM32H523VET6, STM32H523ZCJ6, STM32H523ZCT6, STM32H523ZEJ6, STM32H523ZET6, STM32H533CET6, STM32H533CEU6, STM32H533HEY6TR, STM32H533RET6, STM32H533VEI6, STM32H533VET6, STM32H533ZEJ6, STM32H533ZET6, STM32H562AGI6, STM32H562AII6, STM32H562IGK6, STM32H562IGT6, STM32H562IIK6, STM32H562IIT6, STM32H562RGT6, STM32H562RGV6, STM32H562RIT6, STM32H562RIV6, STM32H562VGT6, STM32H562VIT6, STM32H562ZGT6, STM32H562ZIT6, STM32H563AGI6, STM32H563AII3Q, STM32H563AII6, STM32H563IGK6, STM32H563IGT6, STM32H563IIK3Q, STM32H563IIK6, STM32H563IIT3Q, STM32H563IIT6, STM32H563MIY3QTR, STM32H563RGT6, STM32H563RGV6, STM32H563RIT6, STM32H563RIV6, STM32H563VGT6, STM32H563VIT3Q, STM32H563VIT6, STM32H563ZGT6, STM32H563ZIT3Q, STM32H563ZIT6, STM32H573AII3Q, STM32H573AII6, STM32H573I-DK, STM32H573IIK3Q, STM32H573IIK6, STM32H573IIT3Q, STM32H573IIT6, STM32H573MIY3QTR, STM32H573RIT6, STM32H573RIV6, STM32H573VIT3Q, STM32H573VIT6, STM32H573ZIT3Q, STM32H573ZIT6, STM32H7R3A8I6, STM32H7R3I8K6, STM32H7R3I8T6, STM32H7R3L8H6, STM32H7R3L8H6H, STM32H7R3R8V6, STM32H7R3V8H6, STM32H7R3V8T6, STM32H7R3V8Y6TR, STM32H7R3Z8J6, STM32H7R3Z8T6, STM32H7R7A8I6, STM32H7R7I8K6, STM32H7R7I8T6, STM32H7R7L8H6, STM32H7R7L8H6H, STM32H7R7Z8J6, STM32H7S3A8I6, STM32H7S3I8K6, STM32H7S3I8T6, STM32H7S3L8H6, STM32H7S3L8H6H, STM32H7S3R8V6, STM32H7S3V8H6, STM32H7S3V8T6, STM32H7S3V8Y6TR, STM32H7S3Z8J6, STM32H7S3Z8T6, STM32H7S78-DK, STM32H7S7A8I6, STM32H7S7I8K6, STM32H7S7I8T6, STM32H7S7L8H6, STM32H7S7L8H6H, STM32H7S7Z8J6, STM32L4R5QGI6STR, STM32MP131AAE3, STM32MP131AAF3, STM32MP131AAG3, STM32MP131CAE3, STM32MP131CAF3, STM32MP131CAG3, STM32MP131DAE7, STM32MP131DAF7, STM32MP131DAG7, STM32MP131FAE7, STM32MP131FAF7, STM32MP131FAG7, STM32MP133AAE3, STM32MP133AAF3, STM32MP133AAG3, STM32MP133CAE3, STM32MP133CAF3, STM32MP133CAG3, STM32MP133DAE7, STM32MP133DAF7, STM32MP133DAG7, STM32MP133FAE7, STM32MP133FAF7, STM32MP133FAG7, STM32MP135AAE3, STM32MP135AAF3, STM32MP135AAG3, STM32MP135CAE3, STM32MP135CAF3, STM32MP135CAG3, STM32MP135DAE7, STM32MP135DAF7, STM32MP135DAG7, STM32MP135F-DK, STM32MP135FAE7, STM32MP135FAF7, STM32MP135FAF7T, STM32MP135FAF7U, STM32MP135FAG7, STM32MP211AAL3, STM32MP211AAM3, STM32MP211AAN3, STM32MP211AAO3, STM32MP211CAL3, STM32MP211CAM3, STM32MP211CAN3, STM32MP211CAO3, STM32MP211DAL3, STM32MP211DAM3, STM32MP211DAN3, STM32MP211DAO3, STM32MP211FAL3, STM32MP211FAM3, STM32MP211FAN3, STM32MP211FAO3, STM32MP213AAL3, STM32MP213AAM3, STM32MP213AAN3, STM32MP213AAO3, STM32MP213CAL3, STM32MP213CAM3, STM32MP213CAN3, STM32MP213CAO3, STM32MP213DAL3, STM32MP213DAM3, STM32MP213DAN3, STM32MP213DAO3, STM32MP213FAL3, STM32MP213FAM3, STM32MP213FAN3, STM32MP213FAO3, STM32MP215AAL3, STM32MP215AAM3, STM32MP215AAN3, STM32MP215AAO3, STM32MP215CAL3, STM32MP215CAM3, STM32MP215CAN3, STM32MP215CAO3, STM32MP215DAL3, STM32MP215DAM3, STM32MP215DAN3, STM32MP215DAO3, STM32MP215F-DK, STM32MP215FAL3, STM32MP215FAM3, STM32MP215FAN3, STM32MP215FAO3, STM32MP231AAJ3, STM32MP231AAK3, STM32MP231AAL3, STM32MP231CAJ3, STM32MP231CAK3, STM32MP231CAL3, STM32MP231DAJ3, STM32MP231DAK3, STM32MP231DAL3, STM32MP231FAJ3, STM32MP231FAK3, STM32MP231FAL3, STM32MP233AAJ3, STM32MP233AAK3, STM32MP233AAL3, STM32MP233CAJ3, STM32MP233CAK3, STM32MP233CAL3, STM32MP233DAJ3, STM32MP233DAK3, STM32MP233DAL3, STM32MP233FAJ3, STM32MP233FAK3, STM32MP233FAL3, STM32MP235AAJ3, STM32MP235AAK3, STM32MP235AAL3, STM32MP235CAJ3, STM32MP235CAK3, STM32MP235CAL3, STM32MP235DAJ3, STM32MP235DAK3, STM32MP235DAL3, STM32MP235FAJ3, STM32MP235FAK3, STM32MP235FAL3, STM32MP251AAI3, STM32MP251AAK3, STM32MP251AAL3, STM32MP251CAI3, STM32MP251CAK3, STM32MP251CAL3, STM32MP251DAI3, STM32MP251DAK3, STM32MP251DAL3, STM32MP251FAI3, STM32MP251FAK3, STM32MP251FAL3, STM32MP253AAI3, STM32MP253AAK3, STM32MP253AAL3, STM32MP253CAI3, STM32MP253CAK3, STM32MP253CAL3, STM32MP253DAI3, STM32MP253DAK3, STM32MP253DAL3, STM32MP253FAI3, STM32MP253FAK3, STM32MP253FAL3, STM32MP255AAI3, STM32MP255AAK3, STM32MP255AAL3, STM32MP255CAI3, STM32MP255CAK3, STM32MP255CAL3, STM32MP255DAI3, STM32MP255DAK3, STM32MP255DAL3, STM32MP255FAI3, STM32MP255FAK3, STM32MP255FAL3, STM32MP257AAI3, STM32MP257AAK3, STM32MP257AAL3, STM32MP257CAI3, STM32MP257CAK3, STM32MP257CAL3, STM32MP257DAI3, STM32MP257DAK3, STM32MP257DAL3, STM32MP257F-DK, STM32MP257F-EV1, STM32MP257FAI3, STM32MP257FAK3, STM32MP257FAL3, STM32N645A0H3Q, STM32N645B0H3Q, STM32N645I0H3Q, STM32N645L0H3Q, STM32N645X0H3Q, STM32N645Z0H3Q, STM32N647A0H3Q, STM32N647B0H3Q, STM32N647I0H3Q, STM32N647L0H3Q, STM32N647X0H3Q, STM32N647Z0H3Q, STM32N655A0H3Q, STM32N655B0H3Q, STM32N655I0H3Q, STM32N655L0H3Q, STM32N655X0H3Q, STM32N655Z0H3Q, STM32N6570-DK, STM32N657A0H3Q, STM32N657B0H3Q, STM32N657I0H3Q, STM32N657L0H3Q, STM32N657X0H3Q, STM32N657Z0H3Q, STM32U031C6T6, STM32U031C6U6, STM32U031C8T6, STM32U031C8U6, STM32U031F4P6, STM32U031F6P6, STM32U031F8P6, STM32U031G6Y6TR, STM32U031G8Y6TR, STM32U031K4U6, STM32U031K6U6, STM32U031K8U6, STM32U031R6I6, STM32U031R6T6, STM32U031R8I6, STM32U031R8T6, STM32U073C8T6, STM32U073C8U6, STM32U073CBT6, STM32U073CBU6, STM32U073CCT6, STM32U073CCU6, STM32U073H8Y6TR, STM32U073HBY6TR, STM32U073HCY6TR, STM32U073K8U6, STM32U073KBU6, STM32U073KCU6, STM32U073M8I6, STM32U073M8T6, STM32U073MBI6, STM32U073MBT6, STM32U073MCI6, STM32U073MCT6, STM32U073R8I6, STM32U073R8T6, STM32U073RBI6, STM32U073RBT6, STM32U073RCI6, STM32U073RCT6, STM32U083C-DK, STM32U083CCT6, STM32U083CCU6, STM32U083HCY6TR, STM32U083KCU6, STM32U083MCI6, STM32U083MCT6, STM32U083RCI6, STM32U083RCT6, STM32U375CET6, STM32U375CET6Q, STM32U375CEU6, STM32U375CEU6Q, STM32U375CEY6QTR, STM32U375CGT6, STM32U375CGT6Q, STM32U375CGU6, STM32U375CGU6Q, STM32U375CGY6QTR, STM32U375KEU6, STM32U375KGU6, STM32U375REI6, STM32U375REI6Q, STM32U375RET6, STM32U375RET6Q, STM32U375REY6GTR, STM32U375REY6QTR, STM32U375RGI6, STM32U375RGI6Q, STM32U375RGT6, STM32U375RGT6Q, STM32U375RGY6GTR, STM32U375RGY6QTR, STM32U375VEI6, STM32U375VEI6Q, STM32U375VET6, STM32U375VET6Q, STM32U375VGI6, STM32U375VGI6Q, STM32U375VGT6, STM32U375VGT6Q, STM32U385CGT6, STM32U385CGT6Q, STM32U385CGU6, STM32U385CGU6Q, STM32U385CGY6QTR, STM32U385KGU6, STM32U385RGI6, STM32U385RGI6Q, STM32U385RGT6, STM32U385RGT6Q, STM32U385RGY6GTR, STM32U385RGY6QTR, STM32U385VGI6, STM32U385VGI6Q, STM32U385VGT6, STM32U385VGT6Q, STM32U535CBT6, STM32U535CBT6Q, STM32U535CBU6, STM32U535CBU6Q, STM32U535CCT6, STM32U535CCT6Q, STM32U535CCU6, STM32U535CCU6Q, STM32U535CET6, STM32U535CET6Q, STM32U535CEU6, STM32U535CEU6Q, STM32U535JEY6QTR, STM32U535NCY6QTR, STM32U535NEY6QTR, STM32U535RBI6, STM32U535RBI6Q, STM32U535RBT6, STM32U535RBT6Q, STM32U535RCI6, STM32U535RCI6Q, STM32U535RCT6, STM32U535RCT6Q, STM32U535REI6, STM32U535REI6Q, STM32U535RET6, STM32U535RET6Q, STM32U535VCI6, STM32U535VCI6Q, STM32U535VCT6, STM32U535VCT6Q, STM32U535VEI6, STM32U535VEI6Q, STM32U535VET6, STM32U535VET6Q, STM32U545CET6, STM32U545CET6Q, STM32U545CEU6, STM32U545CEU6Q, STM32U545JEY6QTR, STM32U545NEY6QTR, STM32U545REI6, STM32U545REI6Q, STM32U545RET6, STM32U545RET6Q, STM32U545VEI6, STM32U545VEI6Q, STM32U545VET6, STM32U545VET6Q, STM32U595AIH6, STM32U595AIH6Q, STM32U595AJH6, STM32U595AJH6Q, STM32U595QII6, STM32U595QII6Q, STM32U595QJI6, STM32U595QJI6Q, STM32U595RIT6, STM32U595RIT6Q, STM32U595RJT6, STM32U595RJT6Q, STM32U595VIT6, STM32U595VIT6Q, STM32U595VJT6, STM32U595VJT6Q, STM32U595ZIT6, STM32U595ZIT6Q, STM32U595ZIY6QTR, STM32U595ZJT6, STM32U595ZJT6Q, STM32U595ZJY6QTR, STM32U599BJY6QTR, STM32U599NIH6Q, STM32U599NJH6Q, STM32U599VIT6Q, STM32U599VJT6, STM32U599VJT6Q, STM32U599ZIT6Q, STM32U599ZIY6QTR, STM32U599ZJT6Q, STM32U599ZJY6QTR, STM32U5A5AJH6, STM32U5A5AJH6Q, STM32U5A5QII3Q , STM32U5A5QJI6, STM32U5A5QJI6Q, STM32U5A5RJT6, STM32U5A5RJT6Q, STM32U5A5VJT6, STM32U5A5VJT6Q, STM32U5A5ZJT6, STM32U5A5ZJT6Q, STM32U5A5ZJY6QTR, STM32U5A9BJY6QTR, STM32U5A9J-DK, STM32U5A9NJH6Q, STM32U5A9VJT6Q, STM32U5A9ZJT6Q, STM32U5A9ZJY6QTR, STM32U5F7VIT6, STM32U5F7VIT6Q, STM32U5F7VJT6, STM32U5F7VJT6Q, STM32U5F9BJY6QTR, STM32U5F9NJH6Q, STM32U5F9VIT6Q, STM32U5F9VJT6Q, STM32U5F9ZIJ6QTR, STM32U5F9ZIT6Q, STM32U5F9ZJJ6QTR, STM32U5F9ZJT6Q, STM32U5G7VJT6, STM32U5G7VJT6Q, STM32U5G9BJY6QTR, STM32U5G9J-DK1, STM32U5G9J-DK2, STM32U5G9NJH6Q, STM32U5G9VJT6Q, STM32U5G9ZJJ6QTR, STM32U5G9ZJT6Q, STM32WB05KZV6TR, STM32WB05KZV7TR, STM32WB05TZF6TR, STM32WB05TZF7TR, STM32WB06CCF6TR, STM32WB06CCF7TR, STM32WB06CCV6TR, STM32WB06CCV7TR, STM32WB06KCV6TR, STM32WB06KCV7TR, STM32WB07CCF6TR, STM32WB07CCF7TR, STM32WB07CCV6TR, STM32WB07CCV7TR, STM32WB07KCV6TR, STM32WB07KCV7TR, STM32WB09KEV6TR, STM32WB09KEV7TR, STM32WB09TEF6TR, STM32WB09TEF7TR, STM32WB1MMCH6, STM32WBA50KGU6, STM32WBA50KGU6TR, STM32WBA52CEU6, STM32WBA52CEU6TR, STM32WBA52CEU7, STM32WBA52CEU7TR, STM32WBA52CGU6, STM32WBA52CGU6TR, STM32WBA52CGU6U, STM32WBA52CGU7, STM32WBA52CGU7TR, STM32WBA52KEU6, STM32WBA52KEU6TR, STM32WBA52KGU6, STM32WBA52KGU6TR, STM32WBA54CEU6, STM32WBA54CEU6TR, STM32WBA54CEU7, STM32WBA54CEU7TR, STM32WBA54CGU6, STM32WBA54CGU6TR, STM32WBA54CGU7, STM32WBA54CGU7TR, STM32WBA54KEU6, STM32WBA54KEU6TR, STM32WBA54KEU7, STM32WBA54KEU7TR, STM32WBA54KGU6, STM32WBA54KGU6TR, STM32WBA54KGU7, STM32WBA54KGU7TR, STM32WBA55CEU6, STM32WBA55CEU6TR, STM32WBA55CEU7, STM32WBA55CEU7TR, STM32WBA55CGU6, STM32WBA55CGU6TR, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CGU7TR, STM32WBA55G-DK1, STM32WBA55HEF6, STM32WBA55HEF7, STM32WBA55HGF6, STM32WBA55HGF7, STM32WBA55UEI6, STM32WBA55UEI6TR, STM32WBA55UEI7, STM32WBA55UEI7TR, STM32WBA55UGI6, STM32WBA55UGI6TR, STM32WBA55UGI7, STM32WBA55UGI7TR, STM32WBA5MMGH6TR, STM32WBA62MGF6, STM32WBA62MIF6, STM32WBA65MGF7, STM32WBA65MIF6, STM32WBA65MIF7, STM32WL30K8V6, STM32WL30KBV6, STM32WL31C8V6, STM32WL31CBV6, STM32WL31K8V6, STM32WL31KBV6, STM32WL33C8V6, STM32WL33C8V6X, STM32WL33CBV6, STM32WL33CBV6X, STM32WL33CCV6, STM32WL33CCV6A, STM32WL33CCV6X, STM32WL33K8V7, STM32WL33K8V7X, STM32WL33KBV7 , STM32WL33KBV7X, STM32WL33KCV7, STM32WL33KCV7X, STM32WL5MOCH6, STM32WL5MOCH6TR]
+2025-09-20 22:43:33,502 [INFO] DbMcus:218 - Found 4801 MCUs, 4801 are supported
+2025-09-20 22:43:33,503 [INFO] ApiDb:423 - Load user favorites file /home/ja/.stm32cubeide/favorites.mcus.txt: 0 item(s)
+2025-09-20 22:43:33,503 [INFO] ApiDb:427 - User favorites MCUs=[]
+2025-09-20 22:43:33,503 [INFO] DbMcus:224 - Set 0 / 0 favorites MCUs
+2025-09-20 22:43:34,356 [INFO] ApiDb:414 - User favorites file not found: /home/ja/.stm32cubeide/favorites.boards.txt
+2025-09-20 22:43:34,356 [INFO] DbBoards:198 - Set 0 / 0 favorites Boards
+2025-09-20 22:43:34,408 [INFO] UtilMem:75 - End LoadConfig() Used Memory: 576062072 Bytes (1073741824)
+2025-09-20 22:43:34,663 [WARN] ThirdParty:833 - waiting for thirdparty lock release [change project]
+2025-09-20 22:43:34,664 [INFO] ThirdParty:835 - entering critical section [change project]
+2025-09-20 22:43:34,665 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-PM33A1 1.0.0
+2025-09-20 22:43:34,665 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USBPD 4.1
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC9 1.0.0
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 2.0.0
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENVWB1 1.4.0
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F4 1.1.0
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics LIBJPEG 8.0.0
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-ASTRA1 2.0.2
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSL 5.8.2
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE1 7.1.0
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Avnet-IotConnect X-CUBE-IoTC-DA16k-PMOD 1.0.0
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SMBUS 2.1.0
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfMQTT 1.19.2
+2025-09-20 22:43:34,666 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 3.0.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ISPU 2.1.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-EEPRMA1 5.2.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLEMGR 4.1.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WB 2.0.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST60 1.0.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-GNSS1 7.0.1
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC12 1.0.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-F7 1.1.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L5 2.0.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOUCHGFX 4.25.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 2.0.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC6 3.1.0
+2025-09-20 22:43:34,667 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :quantropi X-CUBE-qispace-sdk-base 2.1.0
+2025-09-20 22:43:34,668 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FreeRTOS 0.0.1
+2025-09-20 22:43:34,668 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G0 1.1.0
+2025-09-20 22:43:34,668 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SAFEA1 1.2.2
+2025-09-20 22:43:34,668 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC4 3.0.0
+2025-09-20 22:43:34,668 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SUBG2 5.0.0
+2025-09-20 22:43:34,668 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7RS 1.1.0
+2025-09-20 22:43:34,668 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics STM32_WPAN 1.0.0
+2025-09-20 22:43:34,668 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :EmbeddedOffice I-CUBE-FS-RTOS 1.0.1
+2025-09-20 22:43:34,668 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.0.3
+2025-09-20 22:43:34,668 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :WES I-CUBE-Cesium 1.4.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Cesanta I-CUBE-Mongoose 7.13.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_HOST 1.0.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :Infineon AIROC-Wi-Fi-Bluetooth-STM32 1.7.1
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-G4 2.0.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-WB05N 2.0.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.1.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.3.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfTPM 3.8.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-H7 3.4.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DISPLAY 3.0.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :wolfSSL I-CUBE-wolfSSH 1.4.20
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC7 2.0.0
+2025-09-20 22:43:34,669 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TCPP 4.2.0
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :RealThread X-CUBE-RT-Thread_Nano 4.1.1
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-ATR-SIGFOX1 3.2.0
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-NFC10 1.0.0
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-FREERTOS 1.3.1
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics HAL Drivers 0.0.0
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.16.2
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-IPS 3.1.0
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALS 1.0.2
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :emotas I-CUBE-CANOPEN 1.3.0
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics MBEDTLS 2.14.1
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :ITTIA_DB I-CUBE-ITTIADB 8.9.0
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-STSE01 1.0.0
+2025-09-20 22:43:34,670 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :portGmbH I-Cube-SoM-uGOAL 1.1.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ST67W61 1.0.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STBOX1 2.1.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AI 10.2.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-STAIOTCFT 1.0.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 1.0.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-SMARTAG2 1.2.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-FLIGHT1 5.1.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-WL 2.0.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :SEGGER I-CUBE-embOS 1.3.1
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-ALGOBUILD 1.4.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-DPower 1.3.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-MEMS1 11.3.0
+2025-09-20 22:43:34,671 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics FP-SNS-MOTENV1 5.0.0
+2025-09-20 22:43:34,672 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics USB_DEVICE 1.0.0
+2025-09-20 22:43:34,672 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-AZRTOS-L4 2.0.0
+2025-09-20 22:43:34,672 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics ThreadX 0.0.2
+2025-09-20 22:43:34,672 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics lwIP 2.1.2
+2025-09-20 22:43:34,672 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-SFXS2LP1 4.0.0
+2025-09-20 22:43:34,672 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-BLE2 3.3.0
+2025-09-20 22:43:34,672 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics X-CUBE-TOF1 3.4.3
+2025-09-20 22:43:34,672 [INFO] ThirdParty:1030 - CMSIS Pack Vendor :STMicroelectronics PDM2PCM 3.2.0
+2025-09-20 22:43:34,672 [INFO] ThirdParty:841 - exiting critical section [change project]
+2025-09-20 22:43:36,096 [INFO] PinOutPanel:1589 - setPackage(No Configuration,No Configuration)
+2025-09-20 22:43:36,098 [INFO] PinOutPanel:1589 - setPackage(STM32F429ZITx,LQFP144)
+2025-09-20 22:43:37,325 [INFO] UtilMem:75 - Before build in PCC Used Memory: 624999232 Bytes (1073741824)
+2025-09-20 22:43:39,412 [INFO] UtilMem:75 - After build in PCC Used Memory: 749748992 Bytes (1073741824)
+2025-09-20 22:43:39,559 [INFO] ApiDbMcu:532 - Load IP Config File for FREERTOS
+2025-09-20 22:43:39,587 [INFO] ApiDbMcu:532 - Load IP Config File for USB_HOST
+2025-09-20 22:43:39,712 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,713 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,713 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,714 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,715 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,716 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,717 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,717 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,718 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,718 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,719 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,719 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,720 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,721 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,721 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,722 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,722 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,722 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,723 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,723 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,724 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,725 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,726 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,727 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,728 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,729 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,730 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,734 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,736 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,737 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,737 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,739 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,740 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,740 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,741 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,741 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,742 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,742 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,743 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,743 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,744 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,744 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,744 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,745 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,745 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,745 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,745 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,746 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,747 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,747 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,747 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,748 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,748 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,749 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,750 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,750 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,751 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,752 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,753 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,755 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,756 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,758 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,759 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,761 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,762 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,764 [INFO] IPUIPlugin:80 - create IPUIPlugin
+2025-09-20 22:43:39,777 [INFO] ApiDbMcu:532 - Load IP Config File for PDM2PCM
+2025-09-20 22:43:39,876 [WARN] FreeRTOS:1023 - Null or empty value: should not occur! (nothing added to the table)
+2025-09-20 22:43:40,443 [INFO] CADModel:165 - CPN selected for project levelSTM32F429ZIT6
+2025-09-20 22:43:40,443 [INFO] CADModel:114 - Register for checkConnection events
+2025-09-20 22:43:40,457 [INFO] RtosManager:728 - Active RTOS found at IOC load: FREERTOS [Cortex-M4NS]
+2025-09-20 22:43:40,535 [INFO] OpenFileManager:386 - Restore cursor
+2025-09-20 22:43:41,131 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 22:44:04,549 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 22:44:04,836 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 22:44:05,059 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 22:44:15,621 [INFO] UtilMem:75 - End SaveConfig() Used Memory: 699902752 Bytes (1073741824)
+2025-09-20 22:44:16,522 [INFO] UtilMem:75 - End SaveConfig() Used Memory: 749598080 Bytes (1073741824)
+2025-09-20 22:44:18,935 [INFO] UtilMem:75 - End SaveConfig() Used Memory: 893239760 Bytes (1073741824)
+2025-09-20 22:44:26,031 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: USB_OTG_HS
+2025-09-20 22:44:26,031 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: SPI
+2025-09-20 22:44:26,031 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: FREERTOS
+2025-09-20 22:44:26,032 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: TIM1_8
+2025-09-20 22:44:26,032 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: LTDC
+2025-09-20 22:44:26,032 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: SYS
+2025-09-20 22:44:26,032 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: RCC
+2025-09-20 22:44:26,033 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: CRC
+2025-09-20 22:44:26,033 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: I2C
+2025-09-20 22:44:26,033 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: NVIC
+2025-09-20 22:44:26,033 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: USB_HOST
+2025-09-20 22:44:26,033 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: DMA2D
+2025-09-20 22:44:26,033 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: USART
+2025-09-20 22:44:26,033 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: FMC
+2025-09-20 22:44:26,035 [INFO] BlockDiagram:2775 - set Specific Code input for plugin: GPIO
+2025-09-20 22:44:26,037 [INFO] CodeGenerator:892 - code generatio: config db path: /home/ja/st/stm32cubeide_1.19.0/plugins/com.st.stm32cube.common.mx_6.15.0.202507011659//db/
+2025-09-20 22:44:26,076 [WARN] IP:2250 - LayerIdx_L1 not found: check if there is a RefParameter without a condition.
+2025-09-20 22:44:26,475 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/license.tmp_save
+2025-09-20 22:44:27,461 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/license.tmp
+2025-09-20 22:44:27,987 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/gpio.tmp_save
+2025-09-20 22:44:28,473 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/gpio.tmp
+2025-09-20 22:44:29,407 [WARN] IPConfigManager:3238 - Warning: the RefConfig PWREx_EnableUSBVoltageDetector is not available in your config.xml file
+2025-09-20 22:44:29,423 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_vars.tmp_save
+2025-09-20 22:44:29,669 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_vars.tmp
+2025-09-20 22:44:29,674 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_inc.tmp_save
+2025-09-20 22:44:29,914 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_inc.tmp
+2025-09-20 22:44:29,924 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_HalInit.tmp_save
+2025-09-20 22:44:30,238 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_HalInit.tmp
+2025-09-20 22:44:30,243 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_Msp.tmp_save
+2025-09-20 22:44:30,515 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/usb_otg_hs_Msp.tmp
+2025-09-20 22:44:33,738 [INFO] Middleware:1452 - No code input for Bsp Dependency
+2025-09-20 22:44:33,747 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp_save
+2025-09-20 22:44:33,921 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp
+2025-09-20 22:44:33,926 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp_save
+2025-09-20 22:44:34,209 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp
+2025-09-20 22:44:34,223 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp_save
+2025-09-20 22:44:34,423 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp
+2025-09-20 22:44:34,428 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp_save
+2025-09-20 22:44:34,574 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp
+2025-09-20 22:44:34,579 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp_save
+2025-09-20 22:44:34,701 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp
+2025-09-20 22:44:34,705 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp_save
+2025-09-20 22:44:34,871 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp
+2025-09-20 22:44:34,873 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp_save
+2025-09-20 22:44:35,009 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp
+2025-09-20 22:44:35,052 [INFO] Middleware:1452 - No code input for Bsp Dependency
+2025-09-20 22:44:35,057 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp_save
+2025-09-20 22:44:35,207 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_inc.tmp
+2025-09-20 22:44:35,210 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp_save
+2025-09-20 22:44:35,339 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_vars.tmp
+2025-09-20 22:44:35,343 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp_save
+2025-09-20 22:44:35,497 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_pfp.tmp
+2025-09-20 22:44:35,500 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp_save
+2025-09-20 22:44:35,607 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_obj_creat.tmp
+2025-09-20 22:44:35,610 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp_save
+2025-09-20 22:44:35,715 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_kernelStart.tmp
+2025-09-20 22:44:35,717 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp_save
+2025-09-20 22:44:35,823 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_default_thread.tmp
+2025-09-20 22:44:35,825 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp_save
+2025-09-20 22:44:35,921 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/rtos_threads.tmp
+2025-09-20 22:44:35,923 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/FreeRTOSConfig.h_save
+2025-09-20 22:44:36,059 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/FreeRTOSConfig.h
+2025-09-20 22:44:36,062 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/freertos.c_save
+2025-09-20 22:44:36,174 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/freertos.c
+2025-09-20 22:44:36,183 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp_save
+2025-09-20 22:44:36,317 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp
+2025-09-20 22:44:36,321 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp_save
+2025-09-20 22:44:36,455 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp
+2025-09-20 22:44:36,460 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp_save
+2025-09-20 22:44:36,583 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp
+2025-09-20 22:44:36,616 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.c_save
+2025-09-20 22:44:36,746 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.c
+2025-09-20 22:44:36,749 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.h_save
+2025-09-20 22:44:36,848 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/App/usb_host.h
+2025-09-20 22:44:36,850 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.h_save
+2025-09-20 22:44:36,941 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.h
+2025-09-20 22:44:36,943 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.c_save
+2025-09-20 22:44:37,043 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_conf.c
+2025-09-20 22:44:37,045 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.c_save
+2025-09-20 22:44:37,134 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.c
+2025-09-20 22:44:37,136 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.h_save
+2025-09-20 22:44:37,228 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/USB_HOST/Target/usbh_platform.h
+2025-09-20 22:44:37,249 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_it.c_save
+2025-09-20 22:44:37,391 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_it.c
+2025-09-20 22:44:37,393 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_it.h_save
+2025-09-20 22:44:37,522 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_it.h
+2025-09-20 22:44:37,527 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp_save
+2025-09-20 22:44:37,697 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_HC.tmp
+2025-09-20 22:44:37,700 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp_save
+2025-09-20 22:44:37,866 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_GV.tmp
+2025-09-20 22:44:37,869 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp_save
+2025-09-20 22:44:38,028 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/mx_fmc_MSP.tmp
+2025-09-20 22:44:38,072 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_msp.c_save
+2025-09-20 22:44:38,339 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_msp.c
+2025-09-20 22:44:38,341 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/system.tmp_save
+2025-09-20 22:44:38,481 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/MXTmpFiles/system.tmp
+2025-09-20 22:44:38,485 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_timebase_tim.c_save
+2025-09-20 22:44:38,622 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/stm32f4xx_hal_timebase_tim.c
+2025-09-20 22:44:38,633 [INFO] CodeEngine:321 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_hal_conf.h_save
+2025-09-20 22:44:38,795 [INFO] CodeEngine:345 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/stm32f4xx_hal_conf.h
+2025-09-20 22:44:38,882 [INFO] ApiDbMcu:532 - Load IP Config File for CRC
+2025-09-20 22:44:38,888 [INFO] ApiDbMcu:532 - Load IP Config File for DMA2D
+2025-09-20 22:44:38,908 [INFO] ApiDbMcu:532 - Load IP Config File for FMC
+2025-09-20 22:44:38,915 [INFO] ApiDbMcu:532 - Load IP Config File for I2C3
+2025-09-20 22:44:38,921 [INFO] ApiDbMcu:532 - Load IP Config File for LTDC
+2025-09-20 22:44:38,927 [INFO] ApiDbMcu:532 - Load IP Config File for SPI5
+2025-09-20 22:44:38,961 [INFO] ApiDbMcu:532 - Load IP Config File for TIM1
+2025-09-20 22:44:38,969 [INFO] ApiDbMcu:532 - Load IP Config File for USART1
+2025-09-20 22:44:38,978 [INFO] ApiDbMcu:532 - Load IP Config File for RCC
+2025-09-20 22:44:38,993 [WARN] IPConfigManager:3811 - IP not found : TIM
+2025-09-20 22:44:38,995 [WARN] CodeGenerator:4259 - IP not found : null
+2025-09-20 22:44:39,006 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Inc/main.h_save
+2025-09-20 22:44:39,208 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Inc/main.h
+2025-09-20 22:44:39,211 [INFO] CodeEngine:265 - oldGeneratedFile, /home/ja/st/Home/TrafficLightsPlus/Core/Src/main.c_save
+2025-09-20 22:44:39,638 [INFO] CodeEngine:289 - Generated code: /home/ja/st/Home/TrafficLightsPlus/Core/Src/main.c
+2025-09-20 22:44:40,332 [INFO] ProjectBuilder:3606 - Time for Copy HAL[1] : 139mS.
+2025-09-20 22:44:40,348 [INFO] ProjectBuilder:5216 - Project Generator version: 4.7.0-B52
+2025-09-20 22:44:40,631 [INFO] ConfigFileManager:1595 - The Die is : DIE419
+2025-09-20 22:44:40,639 [INFO] ApiDbMcu:532 - Load IP Config File for FATFS
+2025-09-20 22:44:40,644 [INFO] ApiDbMcu:532 - Load IP Config File for LIBJPEG
+2025-09-20 22:44:40,660 [INFO] ApiDbMcu:532 - Load IP Config File for LWIP
+2025-09-20 22:44:40,674 [INFO] ApiDbMcu:532 - Load IP Config File for MBEDTLS
+2025-09-20 22:44:40,687 [INFO] ApiDbMcu:532 - Load IP Config File for USB_DEVICE
+2025-09-20 22:44:41,802 [INFO] LogOutputStream:77 - [STDOUT_REDIRECT]
+2025-09-20 22:44:44,761 [INFO] ProjectBuilder:5496 - Time for Generating toolchain IDE Files: 4412mS.
+2025-09-20 22:44:44,761 [INFO] ProjectBuilder:3463 - Time for Copy CMSIS : 0mS.
+2025-09-20 22:44:44,765 [INFO] ProjectBuilder:3463 - Time for Copy CMSIS : 0mS.
diff --git a/.metadata/.log b/.metadata/.log
index 77dd70d..bd1b354 100644
--- a/.metadata/.log
+++ b/.metadata/.log
@@ -478,3 +478,21 @@ Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY com.st.stm32cube.ide.mcu.ide 1 1 2025-09-20 14:37:43.944
!MESSAGE Started RMI Server, listening on port 41337
+!SESSION 2025-09-20 22:34:31.654 -----------------------------------------------
+eclipse.buildId=Version 1.19.0
+java.version=21.0.3
+java.vendor=Eclipse Adoptium
+BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
+Command-line arguments: -os linux -ws gtk -arch x86_64
+
+!ENTRY org.eclipse.core.resources 2 10035 2025-09-20 22:34:34.412
+!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
+
+!ENTRY com.st.stm32cube.ide.mcu.informationcenter 4 4 2025-09-20 22:34:38.306
+!MESSAGE CubeMX plugin appears to be active, Log4j initialization might be too late.
+
+!ENTRY com.st.stm32cube.ide.mcu.informationcenter 1 1 2025-09-20 22:34:38.307
+!MESSAGE Log4j2 initialized with config file /home/ja/st/Home/.metadata/.log4j2.xml
+
+!ENTRY com.st.stm32cube.ide.mcu.ide 1 1 2025-09-20 22:34:46.694
+!MESSAGE Started RMI Server, listening on port 41337
diff --git a/.metadata/.plugins/org.eclipse.cdt.core/.log b/.metadata/.plugins/org.eclipse.cdt.core/.log
index da92812..2767f8d 100644
--- a/.metadata/.plugins/org.eclipse.cdt.core/.log
+++ b/.metadata/.plugins/org.eclipse.cdt.core/.log
@@ -14,3 +14,4 @@
*** SESSION Sep 17, 2025 14:27:19.507 ------------------------------------------
*** SESSION Sep 20, 2025 00:17:43.78 -------------------------------------------
*** SESSION Sep 20, 2025 02:01:15.749 ------------------------------------------
+*** SESSION Sep 20, 2025 22:34:37.42 -------------------------------------------
diff --git a/.metadata/.plugins/org.eclipse.cdt.core/TrafficLightsPlus.1758137370837.pdom b/.metadata/.plugins/org.eclipse.cdt.core/TrafficLightsPlus.1758137370837.pdom
index 54edb62..983e27a 100644
Binary files a/.metadata/.plugins/org.eclipse.cdt.core/TrafficLightsPlus.1758137370837.pdom and b/.metadata/.plugins/org.eclipse.cdt.core/TrafficLightsPlus.1758137370837.pdom differ
diff --git a/.metadata/.plugins/org.eclipse.cdt.ui/TrafficLightsPlus.build.log b/.metadata/.plugins/org.eclipse.cdt.ui/TrafficLightsPlus.build.log
index 972e114..a5620eb 100644
--- a/.metadata/.plugins/org.eclipse.cdt.ui/TrafficLightsPlus.build.log
+++ b/.metadata/.plugins/org.eclipse.cdt.ui/TrafficLightsPlus.build.log
@@ -1,17 +1,18 @@
-14:43:49 **** Incremental Build of configuration Debug for project TrafficLightsPlus ****
+01:20:42 **** Incremental Build of configuration Debug for project TrafficLightsPlus ****
make -j8 all
arm-none-eabi-gcc "../Core/Src/breadboard.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../USB_HOST/App -I../USB_HOST/Target -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../Middlewares/ST/STM32_USB_Host_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Host_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/breadboard.d" -MT"Core/Src/breadboard.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Core/Src/breadboard.o"
+arm-none-eabi-gcc "../Core/Src/main.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../USB_HOST/App -I../USB_HOST/Target -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../Middlewares/ST/STM32_USB_Host_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Host_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/main.d" -MT"Core/Src/main.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Core/Src/main.o"
arm-none-eabi-gcc -o "TrafficLightsPlus.elf" @"objects.list" -mcpu=cortex-m4 -T"/home/ja/st/Home/TrafficLightsPlus/STM32F429ZITX_FLASH.ld" --specs=nosys.specs -Wl,-Map="TrafficLightsPlus.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
Finished building target: TrafficLightsPlus.elf
arm-none-eabi-size TrafficLightsPlus.elf
arm-none-eabi-objdump -h -S TrafficLightsPlus.elf > "TrafficLightsPlus.list"
text data bss dec hex filename
- 32576 16 3480 36072 8ce8 TrafficLightsPlus.elf
+ 32656 16 3496 36168 8d48 TrafficLightsPlus.elf
Finished building: default.size.stdout
Finished building: TrafficLightsPlus.list
-14:43:50 Build Finished. 0 errors, 0 warnings. (took 703ms)
+01:20:42 Build Finished. 0 errors, 0 warnings. (took 593ms)
diff --git a/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
index 1d2e473..c8f01dd 100644
--- a/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
+++ b/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml
@@ -24,4 +24,8 @@
+
+
diff --git a/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log b/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log
index 0c53285..76bf488 100644
--- a/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log
+++ b/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log
@@ -1,13 +1,14 @@
-14:43:49 **** Incremental Build of configuration Debug for project TrafficLightsPlus ****
+01:20:42 **** Incremental Build of configuration Debug for project TrafficLightsPlus ****
make -j8 all
arm-none-eabi-gcc "../Core/Src/breadboard.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../USB_HOST/App -I../USB_HOST/Target -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../Middlewares/ST/STM32_USB_Host_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Host_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/breadboard.d" -MT"Core/Src/breadboard.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Core/Src/breadboard.o"
+arm-none-eabi-gcc "../Core/Src/main.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F429xx -c -I../Core/Inc -I../USB_HOST/App -I../USB_HOST/Target -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Middlewares/Third_Party/FreeRTOS/Source/include -I../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../Middlewares/ST/STM32_USB_Host_Library/Core/Inc -I../Middlewares/ST/STM32_USB_Host_Library/Class/CDC/Inc -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/main.d" -MT"Core/Src/main.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Core/Src/main.o"
arm-none-eabi-gcc -o "TrafficLightsPlus.elf" @"objects.list" -mcpu=cortex-m4 -T"/home/ja/st/Home/TrafficLightsPlus/STM32F429ZITX_FLASH.ld" --specs=nosys.specs -Wl,-Map="TrafficLightsPlus.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
Finished building target: TrafficLightsPlus.elf
arm-none-eabi-size TrafficLightsPlus.elf
arm-none-eabi-objdump -h -S TrafficLightsPlus.elf > "TrafficLightsPlus.list"
text data bss dec hex filename
- 32576 16 3480 36072 8ce8 TrafficLightsPlus.elf
+ 32656 16 3496 36168 8d48 TrafficLightsPlus.elf
Finished building: default.size.stdout
Finished building: TrafficLightsPlus.list
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/0/2055ea26af9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/0/2055ea26af9600101605f36318c5a03f
new file mode 100644
index 0000000..634aaca
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/0/2055ea26af9600101605f36318c5a03f
@@ -0,0 +1,95 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_SET);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_SET);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/0/60bf74b0f695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/0/60bf74b0f695001014a1b349f7adbbd1
deleted file mode 100644
index 053fa06..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/0/60bf74b0f695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/10/a0de2e24af9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/10/a0de2e24af9600101605f36318c5a03f
new file mode 100644
index 0000000..a4b2b3a
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/10/a0de2e24af9600101605f36318c5a03f
@@ -0,0 +1,95 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_SET);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/11/30372612a59600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/11/30372612a59600101605f36318c5a03f
new file mode 100644
index 0000000..7674c5e
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/11/30372612a59600101605f36318c5a03f
@@ -0,0 +1,13 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void trafflight(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/13/d01a6f4faf9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/13/d01a6f4faf9600101605f36318c5a03f
new file mode 100644
index 0000000..ddb1214
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/13/d01a6f4faf9600101605f36318c5a03f
@@ -0,0 +1,95 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_SET);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_SET);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_SET);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/16/c0dac6ec5f96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/16/c0dac6ec5f96001013e892f2240cdbac
new file mode 100644
index 0000000..a447c9e
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/16/c0dac6ec5f96001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ ticksync();
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/16/d0c9bb40ae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/16/d0c9bb40ae9600101605f36318c5a03f
new file mode 100644
index 0000000..99d589b
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/16/d0c9bb40ae9600101605f36318c5a03f
@@ -0,0 +1,85 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 0:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ }
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/17/9055d7ebaa9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/17/9055d7ebaa9600101605f36318c5a03f
new file mode 100644
index 0000000..9d20acd
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/17/9055d7ebaa9600101605f36318c5a03f
@@ -0,0 +1,79 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ trafftick_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay2) {
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay3) {
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/18/10d57df6a49600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/18/10d57df6a49600101605f36318c5a03f
new file mode 100644
index 0000000..0a34a6b
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/18/10d57df6a49600101605f36318c5a03f
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(333);
+ walksig(1000);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/19/50275262f695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/19/50275262f695001014a1b349f7adbbd1
deleted file mode 100644
index 3a12540..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/19/50275262f695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
-
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/27/80efb76af995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/1b/605074f75f96001013e892f2240cdbac
similarity index 52%
rename from .metadata/.plugins/org.eclipse.core.resources/.history/27/80efb76af995001014a1b349f7adbbd1
rename to .metadata/.plugins/org.eclipse.core.resources/.history/1b/605074f75f96001013e892f2240cdbac
index 5b412f3..f83889f 100644
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/27/80efb76af995001014a1b349f7adbbd1
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/1b/605074f75f96001013e892f2240cdbac
@@ -23,24 +23,41 @@
#include "main.h"
#include "breadboard.h"
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
void
breadboard(int traffSPD)
{
+ // =============
// Traffic Light
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
// Walk signal
+ // ============
// Light dimmer
}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/1d/c00fabc8f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/1d/c00fabc8f795001014a1b349f7adbbd1
deleted file mode 100644
index 7553c21..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/1d/c00fabc8f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(500);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(500);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/1e/20e775f0ae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/1e/20e775f0ae9600101605f36318c5a03f
new file mode 100644
index 0000000..080c062
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/1e/20e775f0ae9600101605f36318c5a03f
@@ -0,0 +1,98 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/1f/d0e648806596001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/1f/d0e648806596001013e892f2240cdbac
new file mode 100644
index 0000000..e545896
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/1f/d0e648806596001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ tickinit();
+ while (1)
+ {
+ breadboard(333, 1000);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/2/606f4d90f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/2/606f4d90f795001014a1b349f7adbbd1
deleted file mode 100644
index dc9f4d3..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/2/606f4d90f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/2/b0780877f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/2/b0780877f795001014a1b349f7adbbd1
deleted file mode 100644
index e35d7bb..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/2/b0780877f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/20/90acb2416496001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/20/90acb2416496001013e892f2240cdbac
new file mode 100644
index 0000000..fcb29e9
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/20/90acb2416496001013e892f2240cdbac
@@ -0,0 +1,85 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/21/e010a3106996001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/21/e010a3106996001013e892f2240cdbac
new file mode 100644
index 0000000..7973466
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/21/e010a3106996001013e892f2240cdbac
@@ -0,0 +1,87 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ //last_tick = HAL_GetTick();
+ return; //placeholder
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ //walkingman(pedSPD);
+ //dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/22/9084cb54f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/22/9084cb54f795001014a1b349f7adbbd1
deleted file mode 100644
index f7a5461..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/22/9084cb54f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/23/90b966be6296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/23/90b966be6296001013e892f2240cdbac
new file mode 100644
index 0000000..d4327ae
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/23/90b966be6296001013e892f2240cdbac
@@ -0,0 +1,83 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/24/707b75faac9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/24/707b75faac9600101605f36318c5a03f
new file mode 100644
index 0000000..be35d2d
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/24/707b75faac9600101605f36318c5a03f
@@ -0,0 +1,87 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ redlight_last = HAL_GetTick();
+ ylwlight_last = HAL_GetTick();
+ grnlight_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - redlight_last) >= traffSPD) {
+ redlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - ylwlight_last) >= ldelay2) {
+ ylwlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - grnlight_last) >= ldelay3) {
+ grnlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/25/d00985166b96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/25/d00985166b96001013e892f2240cdbac
new file mode 100644
index 0000000..7973466
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/25/d00985166b96001013e892f2240cdbac
@@ -0,0 +1,87 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ //last_tick = HAL_GetTick();
+ return; //placeholder
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ //walkingman(pedSPD);
+ //dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/27/d0b3bcefaf9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/27/d0b3bcefaf9600101605f36318c5a03f
new file mode 100644
index 0000000..2e60fba
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/27/d0b3bcefaf9600101605f36318c5a03f
@@ -0,0 +1,95 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD, int walkSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_SET);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_SET);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_SET);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/28/60df89739e9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/28/60df89739e9600101605f36318c5a03f
new file mode 100644
index 0000000..bf4d781
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/28/60df89739e9600101605f36318c5a03f
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(333);
+ walksig(1000)
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/28/f08ed78fae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/28/f08ed78fae9600101605f36318c5a03f
new file mode 100644
index 0000000..53995f0
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/28/f08ed78fae9600101605f36318c5a03f
@@ -0,0 +1,92 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/2d/00faf8a26396001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/2d/00faf8a26396001013e892f2240cdbac
new file mode 100644
index 0000000..bbba531
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/2d/00faf8a26396001013e892f2240cdbac
@@ -0,0 +1,86 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return;
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/2e/008b3c54f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/2e/008b3c54f795001014a1b349f7adbbd1
deleted file mode 100644
index bb27d4e..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/2e/008b3c54f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/2f/2052be29ae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/2f/2052be29ae9600101605f36318c5a03f
new file mode 100644
index 0000000..c3a04f4
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/2f/2052be29ae9600101605f36318c5a03f
@@ -0,0 +1,82 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin();
+ }
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/2f/50c89b5bad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/2f/50c89b5bad9600101605f36318c5a03f
new file mode 100644
index 0000000..ba3d973
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/2f/50c89b5bad9600101605f36318c5a03f
@@ -0,0 +1,69 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD)
+
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/1e/a0424880f995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/2f/e06b590b5d96001013e892f2240cdbac
similarity index 53%
rename from .metadata/.plugins/org.eclipse.core.resources/.history/1e/a0424880f995001014a1b349f7adbbd1
rename to .metadata/.plugins/org.eclipse.core.resources/.history/2f/e06b590b5d96001013e892f2240cdbac
index 521842f..008c9cb 100644
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/1e/a0424880f995001014a1b349f7adbbd1
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/2f/e06b590b5d96001013e892f2240cdbac
@@ -23,23 +23,32 @@
#include "main.h"
#include "breadboard.h"
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
void
breadboard(int traffSPD)
{
// Traffic Light
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_SET);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_SET);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
// Walk signal
// Light dimmer
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/30/50ace7bff695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/30/50ace7bff695001014a1b349f7adbbd1
deleted file mode 100644
index f913ee9..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/30/50ace7bff695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/37/800222e56596001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/37/800222e56596001013e892f2240cdbac
new file mode 100644
index 0000000..4740d05
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/37/800222e56596001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ //tickinit();
+ while (1)
+ {
+ //breadboard(333, 1000);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/38/30af6cc7ae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/38/30af6cc7ae9600101605f36318c5a03f
new file mode 100644
index 0000000..683cab9
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/38/30af6cc7ae9600101605f36318c5a03f
@@ -0,0 +1,97 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/39/a07dbaddf895001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/39/a07dbaddf895001014a1b349f7adbbd1
deleted file mode 100644
index b38242c..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/39/a07dbaddf895001014a1b349f7adbbd1
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-breadboard(void)
-{
- // Traffic Light
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/3a/60863702ac9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/3a/60863702ac9600101605f36318c5a03f
new file mode 100644
index 0000000..ae1a96f
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/3a/60863702ac9600101605f36318c5a03f
@@ -0,0 +1,85 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - redlight_last) >= traffSPD) {
+ redlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - ylwlight_last) >= ldelay2) {
+ ylwlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay3) {
+ grnlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/3c/90438fe66496001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/3c/90438fe66496001013e892f2240cdbac
new file mode 100644
index 0000000..73335c5
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/3c/90438fe66496001013e892f2240cdbac
@@ -0,0 +1,87 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ //last_tick = HAL_GetTick();
+ return;
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/3c/a0b2fcd56096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/3c/a0b2fcd56096001013e892f2240cdbac
new file mode 100644
index 0000000..46f8823
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/3c/a0b2fcd56096001013e892f2240cdbac
@@ -0,0 +1,19 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void ticksync(void);
+
+void trafflight(int);
+void walkingman(int);
+void dimmer(void);
+
+void breadboard(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/3d/003eff459e9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/3d/003eff459e9600101605f36318c5a03f
new file mode 100644
index 0000000..d538725
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/3d/003eff459e9600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/3e/9066b761f995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/3e/9066b761f995001014a1b349f7adbbd1
deleted file mode 100644
index a425af3..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/3e/9066b761f995001014a1b349f7adbbd1
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-breadboard(int traffSPD)
-{
- // Traffic Light
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
-
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_Delay(traffSPD);
-
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
- HAL_Delay(traffSPD);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/3f/30d9ed3d6096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/3f/30d9ed3d6096001013e892f2240cdbac
new file mode 100644
index 0000000..3ee16d8
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/3f/30d9ed3d6096001013e892f2240cdbac
@@ -0,0 +1,69 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+breadboard(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
+
+void
+walkingman(int pedSPD)
+{
+
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/40/5083bbb8f895001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/40/5083bbb8f895001014a1b349f7adbbd1
deleted file mode 100644
index 6291a60..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/40/5083bbb8f895001014a1b349f7adbbd1
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-#define RedLight_Port RedLight_GPIO_Port
-#define YellowLight_Port YellowLight_GPIO_Port
-#define GreenLight_Port GreenLight_GPIO_Port
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(333);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(333);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- // Green Light
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(333);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/43/30f91ec5af9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/43/30f91ec5af9600101605f36318c5a03f
new file mode 100644
index 0000000..38387e8
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/43/30f91ec5af9600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(2000, 10*1000);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/46/30928108f995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/46/30928108f995001014a1b349f7adbbd1
deleted file mode 100644
index 33729d1..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/46/30928108f995001014a1b349f7adbbd1
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-breadboard(int traffSPD)
-{
- // Traffic Light
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/4b/90c0f519ad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/4b/90c0f519ad9600101605f36318c5a03f
new file mode 100644
index 0000000..80d1190
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/4b/90c0f519ad9600101605f36318c5a03f
@@ -0,0 +1,71 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ redlight_last = HAL_GetTick();
+ ylwlight_last = HAL_GetTick();
+ grnlight_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/4d/a0c2a7b46296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/4d/a0c2a7b46296001013e892f2240cdbac
new file mode 100644
index 0000000..290d299
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/4d/a0c2a7b46296001013e892f2240cdbac
@@ -0,0 +1,81 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/4e/f00d65b6ad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/4e/f00d65b6ad9600101605f36318c5a03f
new file mode 100644
index 0000000..e925800
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/4e/f00d65b6ad9600101605f36318c5a03f
@@ -0,0 +1,72 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/5/200721b5ab9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/5/200721b5ab9600101605f36318c5a03f
new file mode 100644
index 0000000..530e25f
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/5/200721b5ab9600101605f36318c5a03f
@@ -0,0 +1,83 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - redlight_last) >= traffSPD) {
+ trafftick_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay2) {
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay3) {
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/5/d00022ed6496001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/5/d00022ed6496001013e892f2240cdbac
new file mode 100644
index 0000000..60e1492
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/5/d00022ed6496001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ //tickinit();
+ while (1)
+ {
+ breadboard(333, 1000);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/51/605b0d3af795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/51/605b0d3af795001014a1b349f7adbbd1
deleted file mode 100644
index f913ee9..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/51/605b0d3af795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/53/200e52fd6296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/53/200e52fd6296001013e892f2240cdbac
new file mode 100644
index 0000000..290d299
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/53/200e52fd6296001013e892f2240cdbac
@@ -0,0 +1,81 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/54/109966649e9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/54/109966649e9600101605f36318c5a03f
new file mode 100644
index 0000000..7674c5e
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/54/109966649e9600101605f36318c5a03f
@@ -0,0 +1,13 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void trafflight(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/54/50b578956396001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/54/50b578956396001013e892f2240cdbac
new file mode 100644
index 0000000..c8f56c8
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/54/50b578956396001013e892f2240cdbac
@@ -0,0 +1,86 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/54/a0755e216496001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/54/a0755e216496001013e892f2240cdbac
new file mode 100644
index 0000000..6f50d24
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/54/a0755e216496001013e892f2240cdbac
@@ -0,0 +1,85 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return;
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/47/104caa77f995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/54/f0a56a195d96001013e892f2240cdbac
similarity index 53%
rename from .metadata/.plugins/org.eclipse.core.resources/.history/47/104caa77f995001014a1b349f7adbbd1
rename to .metadata/.plugins/org.eclipse.core.resources/.history/54/f0a56a195d96001013e892f2240cdbac
index 98c6087..29393b2 100644
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/47/104caa77f995001014a1b349f7adbbd1
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/54/f0a56a195d96001013e892f2240cdbac
@@ -23,24 +23,35 @@
#include "main.h"
#include "breadboard.h"
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
void
breadboard(int traffSPD)
{
+ // =============
// Traffic Light
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_SET);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_SET);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
// Walk signal
+ // ============
// Light dimmer
}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/55/9053c3ecf795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/55/9053c3ecf795001014a1b349f7adbbd1
deleted file mode 100644
index 9959d4e..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/55/9053c3ecf795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(500);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- // Green Light
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(500);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/56/90558020af9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/56/90558020af9600101605f36318c5a03f
new file mode 100644
index 0000000..f51383a
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/56/90558020af9600101605f36318c5a03f
@@ -0,0 +1,95 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/58/1043da216996001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/58/1043da216996001013e892f2240cdbac
new file mode 100644
index 0000000..8456b93
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/58/1043da216996001013e892f2240cdbac
@@ -0,0 +1,19 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void tickinit(void);
+
+void trafflight(int);
+void walkingman(int);
+void dimmer(void);
+
+void breadboard(int, int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/58/409cec3ef795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/58/409cec3ef795001014a1b349f7adbbd1
deleted file mode 100644
index c8ea58b..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/58/409cec3ef795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/5c/5012e6e46296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/5c/5012e6e46296001013e892f2240cdbac
new file mode 100644
index 0000000..47feeed
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/5c/5012e6e46296001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ tickinit();
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/5e/30359e6d6a96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/5e/30359e6d6a96001013e892f2240cdbac
new file mode 100644
index 0000000..6bd047f
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/5e/30359e6d6a96001013e892f2240cdbac
@@ -0,0 +1,732 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ //tickinit();
+ while (1)
+ {
+ //breadboard(333, 1000);
+ trafflight(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/5e/505739c26096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/5e/505739c26096001013e892f2240cdbac
new file mode 100644
index 0000000..5a899ef
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/5e/505739c26096001013e892f2240cdbac
@@ -0,0 +1,79 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
+
+void
+walkingman(int pedSPD)
+{
+ //
+
+}
+
+void
+dimmer(void)
+{
+ //
+}
+
+void
+breadboard(int traffSpd, int pedSPD)
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/5f/3099ecc0f695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/5f/3099ecc0f695001014a1b349f7adbbd1
deleted file mode 100644
index 1aa1abe..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/5f/3099ecc0f695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/5f/708bc2d0ab9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/5f/708bc2d0ab9600101605f36318c5a03f
new file mode 100644
index 0000000..fe5cee9
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/5f/708bc2d0ab9600101605f36318c5a03f
@@ -0,0 +1,84 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - redlight_last) >= traffSPD) {
+ redlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - grnlight_last) >= ldelay2) {
+ grnlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay3) {
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/63/00c742e76296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/63/00c742e76296001013e892f2240cdbac
new file mode 100644
index 0000000..9381c03
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/63/00c742e76296001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ //tickinit();
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/63/80047dfead9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/63/80047dfead9600101605f36318c5a03f
new file mode 100644
index 0000000..e534eb9
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/63/80047dfead9600101605f36318c5a03f
@@ -0,0 +1,74 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin();
+ switch (trafflight_i) {
+ }
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/65/8093c37b6a96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/65/8093c37b6a96001013e892f2240cdbac
new file mode 100644
index 0000000..ee94d83
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/65/8093c37b6a96001013e892f2240cdbac
@@ -0,0 +1,732 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ //tickinit();
+ while (1)
+ {
+ breadboard(333, 1000);
+ //trafflight(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/66/c05318c3af9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/66/c05318c3af9600101605f36318c5a03f
new file mode 100644
index 0000000..25e1466
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/66/c05318c3af9600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(2000, 10000);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/68/d0cc52d6ab9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/68/d0cc52d6ab9600101605f36318c5a03f
new file mode 100644
index 0000000..e64d732
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/68/d0cc52d6ab9600101605f36318c5a03f
@@ -0,0 +1,85 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - redlight_last) >= traffSPD) {
+ redlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - ylwlight_last) >= ldelay2) {
+ ylwlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay3) {
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/69/108c02a26396001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/69/108c02a26396001013e892f2240cdbac
new file mode 100644
index 0000000..c8f56c8
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/69/108c02a26396001013e892f2240cdbac
@@ -0,0 +1,86 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/69/30006aa0af9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/69/30006aa0af9600101605f36318c5a03f
new file mode 100644
index 0000000..c540f16
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/69/30006aa0af9600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/69/50b960c3ad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/69/50b960c3ad9600101605f36318c5a03f
new file mode 100644
index 0000000..4a2b5f1
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/69/50b960c3ad9600101605f36318c5a03f
@@ -0,0 +1,72 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ switch (trafflight_i)
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/71/009bf612af9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/71/009bf612af9600101605f36318c5a03f
new file mode 100644
index 0000000..46148ce
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/71/009bf612af9600101605f36318c5a03f
@@ -0,0 +1,101 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin &&
+ Y_Prt, Y_Pin &&
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/71/30d1116eaf9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/71/30d1116eaf9600101605f36318c5a03f
new file mode 100644
index 0000000..cbd6deb
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/71/30d1116eaf9600101605f36318c5a03f
@@ -0,0 +1,15 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void starttick(void);
+
+void trafflight(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/71/e0e62d3cf695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/71/e0e62d3cf695001014a1b349f7adbbd1
deleted file mode 100644
index 5892306..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/71/e0e62d3cf695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/72/30b6a0e26296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/72/30b6a0e26296001013e892f2240cdbac
new file mode 100644
index 0000000..9381c03
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/72/30b6a0e26296001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ //tickinit();
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/78/e09529e56096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/78/e09529e56096001013e892f2240cdbac
new file mode 100644
index 0000000..d5ee26d
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/78/e09529e56096001013e892f2240cdbac
@@ -0,0 +1,84 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
+
+void
+walkingman(int pedSPD)
+{
+ //
+
+}
+
+void
+dimmer(void)
+{
+ //
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/7a/e06b0351ae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/7a/e06b0351ae9600101605f36318c5a03f
new file mode 100644
index 0000000..1bb08ea
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/7a/e06b0351ae9600101605f36318c5a03f
@@ -0,0 +1,89 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/7c/40a221316096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/7c/40a221316096001013e892f2240cdbac
new file mode 100644
index 0000000..f83889f
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/7c/40a221316096001013e892f2240cdbac
@@ -0,0 +1,63 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+breadboard(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/8/206f3334ad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/8/206f3334ad9600101605f36318c5a03f
new file mode 100644
index 0000000..387c932
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/8/206f3334ad9600101605f36318c5a03f
@@ -0,0 +1,74 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ redlight_last = HAL_GetTick();
+ ylwlight_last = HAL_GetTick();
+ grnlight_last = HAL_GetTick();
+
+ trafflight_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if (trafftick_curr)
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/81/80e16946b09600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/81/80e16946b09600101605f36318c5a03f
new file mode 100644
index 0000000..a0af75d
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/81/80e16946b09600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(2*1000, 10*1000);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/83/006beaa85f96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/83/006beaa85f96001013e892f2240cdbac
new file mode 100644
index 0000000..f83889f
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/83/006beaa85f96001013e892f2240cdbac
@@ -0,0 +1,63 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+breadboard(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/83/c00f9d0faf9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/83/c00f9d0faf9600101605f36318c5a03f
new file mode 100644
index 0000000..10528c6
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/83/c00f9d0faf9600101605f36318c5a03f
@@ -0,0 +1,100 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin &&
+ Y_Prt, Y_Pin &&
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/86/208938c16096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/86/208938c16096001013e892f2240cdbac
new file mode 100644
index 0000000..61eaa56
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/86/208938c16096001013e892f2240cdbac
@@ -0,0 +1,76 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
+
+void
+walkingman(int pedSPD)
+{
+ //
+
+}
+
+void
+dimmer(void)
+{
+ //
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/86/a002320f9396001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/86/a002320f9396001013e892f2240cdbac
new file mode 100644
index 0000000..6b68947
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/86/a002320f9396001013e892f2240cdbac
@@ -0,0 +1,87 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ //last_tick = HAL_GetTick();
+ return; //placeholder
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/87/70300f56ad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/87/70300f56ad9600101605f36318c5a03f
new file mode 100644
index 0000000..499c077
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/87/70300f56ad9600101605f36318c5a03f
@@ -0,0 +1,68 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last))
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/89/c0192844ae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/89/c0192844ae9600101605f36318c5a03f
new file mode 100644
index 0000000..8fc238f
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/89/c0192844ae9600101605f36318c5a03f
@@ -0,0 +1,88 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ }
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/8a/107d9637f995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/8a/107d9637f995001014a1b349f7adbbd1
deleted file mode 100644
index c85762b..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/8a/107d9637f995001014a1b349f7adbbd1
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-breadboard(int traffSPD)
-{
- // Traffic Light
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/92/402d992dac9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/92/402d992dac9600101605f36318c5a03f
new file mode 100644
index 0000000..63298d3
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/92/402d992dac9600101605f36318c5a03f
@@ -0,0 +1,89 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+
+ redlight_last = HAL_GetTick();
+ ylwlight_last = HAL_GetTick();
+ grnlight_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - redlight_last) >= traffSPD) {
+ redlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - ylwlight_last) >= ldelay2) {
+ ylwlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - grnlight_last) >= ldelay3) {
+ grnlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/93/e09b2fcef895001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/93/e09b2fcef895001014a1b349f7adbbd1
deleted file mode 100644
index baf9c1d..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/93/e09b2fcef895001014a1b349f7adbbd1
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(333);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(333);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- // Green Light
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(333);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/95/10c05cdd6296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/95/10c05cdd6296001013e892f2240cdbac
new file mode 100644
index 0000000..47feeed
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/95/10c05cdd6296001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ tickinit();
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/95/b0c2a6a7f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/95/b0c2a6a7f795001014a1b349f7adbbd1
deleted file mode 100644
index 9a7e13c..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/95/b0c2a6a7f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(500);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(500);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/99/b03e3fbcaf9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/99/b03e3fbcaf9600101605f36318c5a03f
new file mode 100644
index 0000000..92e6d85
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/99/b03e3fbcaf9600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(2000, 500);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/9b/b0755bc1f895001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/9b/b0755bc1f895001014a1b349f7adbbd1
deleted file mode 100644
index 0f37ab6..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/9b/b0755bc1f895001014a1b349f7adbbd1
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-#define RedLight_Port RedLight_GPIO_Port
-#define YellowLight_Port YellowLight_GPIO_Port
-#define GreenLight_Port GreenLight_GPIO_Port
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(333);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(333);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- // Green Light
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(333);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/9d/6095fd066996001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/9d/6095fd066996001013e892f2240cdbac
new file mode 100644
index 0000000..7973466
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/9d/6095fd066996001013e892f2240cdbac
@@ -0,0 +1,87 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ //last_tick = HAL_GetTick();
+ return; //placeholder
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ //walkingman(pedSPD);
+ //dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/9e/b0d3ae29ac9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/9e/b0d3ae29ac9600101605f36318c5a03f
new file mode 100644
index 0000000..e4b85fa
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/9e/b0d3ae29ac9600101605f36318c5a03f
@@ -0,0 +1,85 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - redlight_last) >= traffSPD) {
+ redlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - ylwlight_last) >= ldelay2) {
+ ylwlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - grnlight_last) >= ldelay3) {
+ grnlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/9f/00375fd4a79600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/9f/00375fd4a79600101605f36318c5a03f
new file mode 100644
index 0000000..c540f16
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/9f/00375fd4a79600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/9f/606e3aeb5f96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/9f/606e3aeb5f96001013e892f2240cdbac
new file mode 100644
index 0000000..c569d6d
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/9f/606e3aeb5f96001013e892f2240cdbac
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/9f/f0feb5996596001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/9f/f0feb5996596001013e892f2240cdbac
new file mode 100644
index 0000000..6b68947
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/9f/f0feb5996596001013e892f2240cdbac
@@ -0,0 +1,87 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ //last_tick = HAL_GetTick();
+ return; //placeholder
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/a3/802bf57ff795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/a3/802bf57ff795001014a1b349f7adbbd1
deleted file mode 100644
index e35d7bb..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/a3/802bf57ff795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/a7/d0d817729e9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/a7/d0d817729e9600101605f36318c5a03f
new file mode 100644
index 0000000..c540f16
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/a7/d0d817729e9600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/a9/400946666396001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/a9/400946666396001013e892f2240cdbac
new file mode 100644
index 0000000..095a38a
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/a9/400946666396001013e892f2240cdbac
@@ -0,0 +1,81 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ab/6068d747f995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/ab/6068d747f995001014a1b349f7adbbd1
deleted file mode 100644
index db14d76..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/ab/6068d747f995001014a1b349f7adbbd1
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-breadboard(int traffSPD)
-{
- // Traffic Light
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
-
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_Delay(traffSPD);
-
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_Delay(traffSPD);
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ab/a0b4fd6eab9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/ab/a0b4fd6eab9600101605f36318c5a03f
new file mode 100644
index 0000000..b3b7fc0
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/ab/a0b4fd6eab9600101605f36318c5a03f
@@ -0,0 +1,83 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ trafftick_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay2) {
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay3) {
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ac/20b37dd26296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/ac/20b37dd26296001013e892f2240cdbac
new file mode 100644
index 0000000..a447c9e
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/ac/20b37dd26296001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ ticksync();
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30f326956096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30f326956096001013e892f2240cdbac
new file mode 100644
index 0000000..9dc366f
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/ae/30f326956096001013e892f2240cdbac
@@ -0,0 +1,14 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void ticksync(void);
+void breadboard(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/af/40262d69f895001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/af/40262d69f895001014a1b349f7adbbd1
deleted file mode 100644
index ce2774c..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/af/40262d69f895001014a1b349f7adbbd1
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(333);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(333);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- // Green Light
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(333);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b6/001207d2ae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/b6/001207d2ae9600101605f36318c5a03f
new file mode 100644
index 0000000..24d99d3
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/b6/001207d2ae9600101605f36318c5a03f
@@ -0,0 +1,97 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b6/d0024abeaf9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/b6/d0024abeaf9600101605f36318c5a03f
new file mode 100644
index 0000000..cb0434a
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/b6/d0024abeaf9600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(2000, 1000);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/b6/e05dffdbad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/b6/e05dffdbad9600101605f36318c5a03f
new file mode 100644
index 0000000..0453ae2
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/b6/e05dffdbad9600101605f36318c5a03f
@@ -0,0 +1,73 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ switch (trafflight_i) {
+ }
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b7/90a12443b09600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/b7/90a12443b09600101605f36318c5a03f
new file mode 100644
index 0000000..a0af75d
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/b7/90a12443b09600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(2*1000, 10*1000);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/b8/d08c47e86296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/b8/d08c47e86296001013e892f2240cdbac
new file mode 100644
index 0000000..da8e410
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/b8/d08c47e86296001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ // tickinit();
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e0162da3f695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e0162da3f695001014a1b349f7adbbd1
deleted file mode 100644
index 7abb660..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e0162da3f695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePiN(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ba/d07d3ff4a49600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/ba/d07d3ff4a49600101605f36318c5a03f
new file mode 100644
index 0000000..733c8b2
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/ba/d07d3ff4a49600101605f36318c5a03f
@@ -0,0 +1,14 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void trafflight(int);
+void walksig(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ba/e02cebb46596001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/ba/e02cebb46596001013e892f2240cdbac
new file mode 100644
index 0000000..8b42c49
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/ba/e02cebb46596001013e892f2240cdbac
@@ -0,0 +1,87 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ //last_tick = HAL_GetTick();
+ return; //placeholder
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ //dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/bc/e02ce408af9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/bc/e02ce408af9600101605f36318c5a03f
new file mode 100644
index 0000000..4263ff5
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/bc/e02ce408af9600101605f36318c5a03f
@@ -0,0 +1,99 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin &&
+ Y_Prt, Y_Pin &&
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/be/80bf12f5f895001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/be/80bf12f5f895001014a1b349f7adbbd1
deleted file mode 100644
index bf05c5d..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/be/80bf12f5f895001014a1b349f7adbbd1
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-breadboard(int traffSPD)
-{
- // Traffic Light
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/be/80c0fdd76596001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/be/80c0fdd76596001013e892f2240cdbac
new file mode 100644
index 0000000..60e1492
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/be/80c0fdd76596001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ //tickinit();
+ while (1)
+ {
+ breadboard(333, 1000);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/be/a0280d0fab9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/be/a0280d0fab9600101605f36318c5a03f
new file mode 100644
index 0000000..2e05cca
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/be/a0280d0fab9600101605f36318c5a03f
@@ -0,0 +1,81 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ trafftick_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay2) {
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay3) {
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/bf/40d5cb70f895001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/bf/40d5cb70f895001014a1b349f7adbbd1
deleted file mode 100644
index aa96b21..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/bf/40d5cb70f895001014a1b349f7adbbd1
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(333);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_GPIO_Port, YellowLight_Pin);
- HAL_Delay(333);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- // Green Light
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(333);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c1/206820039e9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/c1/206820039e9600101605f36318c5a03f
new file mode 100644
index 0000000..0e78adf
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/c1/206820039e9600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/c1/20e546c9f895001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/c1/20e546c9f895001014a1b349f7adbbd1
deleted file mode 100644
index f92b4c5..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/c1/20e546c9f895001014a1b349f7adbbd1
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-#define RedLight_Port RedLight_GPIO_Port
-#define YellowLight_Port YellowLight_GPIO_Port
-#define GreenLight_Port GreenLight_GPIO_Port
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(333);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(333);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- // Green Light
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(333);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c3/604082e56496001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/c3/604082e56496001013e892f2240cdbac
new file mode 100644
index 0000000..9815e41
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/c3/604082e56496001013e892f2240cdbac
@@ -0,0 +1,86 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ //last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c3/80f5d29bf795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/c3/80f5d29bf795001014a1b349f7adbbd1
deleted file mode 100644
index 283db42..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/c3/80f5d29bf795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(500);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c5/e069d2d16096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/c5/e069d2d16096001013e892f2240cdbac
new file mode 100644
index 0000000..9b1b96a
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/c5/e069d2d16096001013e892f2240cdbac
@@ -0,0 +1,82 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
+
+void
+walkingman(int pedSPD)
+{
+ //
+
+}
+
+void
+dimmer(void)
+{
+ //
+}
+
+void
+breadboard(int traffSpd, int pedSPD)
+{
+
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c6/907e0364ab9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/c6/907e0364ab9600101605f36318c5a03f
new file mode 100644
index 0000000..b3b7fc0
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/c6/907e0364ab9600101605f36318c5a03f
@@ -0,0 +1,83 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ trafftick_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay2) {
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay3) {
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c7/00af95d6f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/c7/00af95d6f795001014a1b349f7adbbd1
deleted file mode 100644
index 9aca328..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/c7/00af95d6f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(500);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(500);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c9/60d0fdccad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/c9/60d0fdccad9600101605f36318c5a03f
new file mode 100644
index 0000000..b1f4510
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/c9/60d0fdccad9600101605f36318c5a03f
@@ -0,0 +1,74 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ switch (trafflight_i) {
+
+ }
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c9/703e7b01b09600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/c9/703e7b01b09600101605f36318c5a03f
new file mode 100644
index 0000000..04a28d5
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/c9/703e7b01b09600101605f36318c5a03f
@@ -0,0 +1,81 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD, int walkSPD)
+{
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_SET);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_SET);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_SET);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c9/80777c98f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/c9/80777c98f795001014a1b349f7adbbd1
deleted file mode 100644
index cce27e1..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/c9/80777c98f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(500);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f0746affb19600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f0746affb19600101605f36318c5a03f
new file mode 100644
index 0000000..538d2d1
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f0746affb19600101605f36318c5a03f
@@ -0,0 +1,81 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_index = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD, int walkSPD)
+{
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_index) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_SET);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_SET);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_SET);
+ break;
+ }
+
+ trafflight_index = (trafflight_index + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ca/80ba58ed5f96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/ca/80ba58ed5f96001013e892f2240cdbac
new file mode 100644
index 0000000..2641ee9
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/ca/80ba58ed5f96001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ ticksync(void);
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/cf/80a38f69f695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/cf/80a38f69f695001014a1b349f7adbbd1
deleted file mode 100644
index 3a12540..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/cf/80a38f69f695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
-
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/cf/d011d58df695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/cf/d011d58df695001014a1b349f7adbbd1
deleted file mode 100644
index 2825851..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/cf/d011d58df695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePiN(RedLight_GPIO_Port, RedLight_Pin);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d0/2083c150f995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/d0/2083c150f995001014a1b349f7adbbd1
deleted file mode 100644
index 9320759..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/d0/2083c150f995001014a1b349f7adbbd1
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-breadboard(int traffSPD)
-{
- // Traffic Light
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
-
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_Delay(traffSPD);
-
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_Delay(traffSPD);
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d0/2091273cad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/d0/2091273cad9600101605f36318c5a03f
new file mode 100644
index 0000000..4c3f5d6
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/d0/2091273cad9600101605f36318c5a03f
@@ -0,0 +1,70 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ trafflight_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if (trafftick_curr)
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d0/50dcc24dad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/d0/50dcc24dad9600101605f36318c5a03f
new file mode 100644
index 0000000..84fac95
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/d0/50dcc24dad9600101605f36318c5a03f
@@ -0,0 +1,68 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if (trafftick_curr)
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d0/609aff18a59600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/d0/609aff18a59600101605f36318c5a03f
new file mode 100644
index 0000000..45ca502
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/d0/609aff18a59600101605f36318c5a03f
@@ -0,0 +1,14 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void trafflight(int);
+void startticking(void);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d2/40d83561ae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/d2/40d83561ae9600101605f36318c5a03f
new file mode 100644
index 0000000..898bba0
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/d2/40d83561ae9600101605f36318c5a03f
@@ -0,0 +1,91 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d3/b08c4786ad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/d3/b08c4786ad9600101605f36318c5a03f
new file mode 100644
index 0000000..99ddace
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/d3/b08c4786ad9600101605f36318c5a03f
@@ -0,0 +1,70 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d6/e0904406b19600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/d6/e0904406b19600101605f36318c5a03f
new file mode 100644
index 0000000..b268557
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/d6/e0904406b19600101605f36318c5a03f
@@ -0,0 +1,81 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD, int walkSPD)
+{
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_SET);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_SET);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_SET);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d7/00e1369ff795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/d7/00e1369ff795001014a1b349f7adbbd1
deleted file mode 100644
index 94eed6b..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/d7/00e1369ff795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(500);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(500);
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d8/e09e5470f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/d8/e09e5470f795001014a1b349f7adbbd1
deleted file mode 100644
index e35d7bb..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/d8/e09e5470f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d9/20b8d3d8f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/d9/20b8d3d8f795001014a1b349f7adbbd1
deleted file mode 100644
index 9959d4e..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/d9/20b8d3d8f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(500);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- // Green Light
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(500);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d9/602cf59e6096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/d9/602cf59e6096001013e892f2240cdbac
new file mode 100644
index 0000000..b202dc8
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/d9/602cf59e6096001013e892f2240cdbac
@@ -0,0 +1,17 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void ticksync(void);
+void trafflight(int);
+void walkingman(int);
+void dimmer(void);
+void breadboard(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d9/7042f353f695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/d9/7042f353f695001014a1b349f7adbbd1
deleted file mode 100644
index bc7c98f..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/d9/7042f353f695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-void
-reset_traffic(void)
-{
-
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d9/90a1f0076196001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/d9/90a1f0076196001013e892f2240cdbac
new file mode 100644
index 0000000..0090c59
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/d9/90a1f0076196001013e892f2240cdbac
@@ -0,0 +1,80 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/db/3025ff806a96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/db/3025ff806a96001013e892f2240cdbac
new file mode 100644
index 0000000..46f8823
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/db/3025ff806a96001013e892f2240cdbac
@@ -0,0 +1,19 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void ticksync(void);
+
+void trafflight(int);
+void walkingman(int);
+void dimmer(void);
+
+void breadboard(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/db/404345429e9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/db/404345429e9600101605f36318c5a03f
new file mode 100644
index 0000000..01b9536
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/db/404345429e9600101605f36318c5a03f
@@ -0,0 +1,13 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void breadboard(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/db/70a286846396001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/db/70a286846396001013e892f2240cdbac
new file mode 100644
index 0000000..2795872
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/db/70a286846396001013e892f2240cdbac
@@ -0,0 +1,83 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/dc/e0fd74a56096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/dc/e0fd74a56096001013e892f2240cdbac
new file mode 100644
index 0000000..f4b3597
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/dc/e0fd74a56096001013e892f2240cdbac
@@ -0,0 +1,75 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+breadboard(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
+
+void
+walkingman(int pedSPD)
+{
+ //
+}
+
+void
+dimmer(void)
+{
+ //
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/de/2074be925f96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/de/2074be925f96001013e892f2240cdbac
new file mode 100644
index 0000000..01b9536
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/de/2074be925f96001013e892f2240cdbac
@@ -0,0 +1,13 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void breadboard(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e1/20bf2853f995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/e1/20bf2853f995001014a1b349f7adbbd1
deleted file mode 100644
index 5267282..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/e1/20bf2853f995001014a1b349f7adbbd1
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-breadboard(int traffSPD)
-{
- // Traffic Light
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
-
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_Delay(traffSPD);
-
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
- HAL_Delay(traffSPD);
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e2/00fd4f9c6096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/e2/00fd4f9c6096001013e892f2240cdbac
new file mode 100644
index 0000000..6d288ff
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/e2/00fd4f9c6096001013e892f2240cdbac
@@ -0,0 +1,15 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void ticksync(void);
+void trafflight(int);
+void breadboard(int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e3/1072b9b26096001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/e3/1072b9b26096001013e892f2240cdbac
new file mode 100644
index 0000000..9498331
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/e3/1072b9b26096001013e892f2240cdbac
@@ -0,0 +1,76 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+ticksync(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+walkingman(int pedSPD)
+{
+ //
+
+}
+
+void
+dimmer(void)
+{
+ //
+}
+
+void
+breadboard(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e3/30588babad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/e3/30588babad9600101605f36318c5a03f
new file mode 100644
index 0000000..3b1be5e
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/e3/30588babad9600101605f36318c5a03f
@@ -0,0 +1,71 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint8_t trafflight_i;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e4/0024b5206996001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/e4/0024b5206996001013e892f2240cdbac
new file mode 100644
index 0000000..3eec312
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/e4/0024b5206996001013e892f2240cdbac
@@ -0,0 +1,89 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ //last_tick = HAL_GetTick();
+ return; //placeholder
+}
+
+void
+breadboard(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+/*
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ //walkingman(pedSPD);
+ //dimmer();
+}
+*/
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e4/a0ce147bf695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/e4/a0ce147bf695001014a1b349f7adbbd1
deleted file mode 100644
index 82c36b2..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/e4/a0ce147bf695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePiN();
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e5/7011b93ead9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/e5/7011b93ead9600101605f36318c5a03f
new file mode 100644
index 0000000..f9ffdca
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/e5/7011b93ead9600101605f36318c5a03f
@@ -0,0 +1,68 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+void
+starttick(void)
+{
+ trafflight_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if (trafftick_curr)
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e5/d06e10f26296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/e5/d06e10f26296001013e892f2240cdbac
new file mode 100644
index 0000000..9381c03
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/e5/d06e10f26296001013e892f2240cdbac
@@ -0,0 +1,731 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ //tickinit();
+ while (1)
+ {
+ breadboard(333);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/ed/30bda43cf995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/e6/1044c4015d96001013e892f2240cdbac
similarity index 53%
rename from .metadata/.plugins/org.eclipse.core.resources/.history/ed/30bda43cf995001014a1b349f7adbbd1
rename to .metadata/.plugins/org.eclipse.core.resources/.history/e6/1044c4015d96001013e892f2240cdbac
index 2e05642..0493565 100644
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/ed/30bda43cf995001014a1b349f7adbbd1
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/e6/1044c4015d96001013e892f2240cdbac
@@ -21,19 +21,34 @@
*/
#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
void
breadboard(int traffSPD)
{
// Traffic Light
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+
// Walk signal
// Light dimmer
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e8/b05b77126996001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/e8/b05b77126996001013e892f2240cdbac
new file mode 100644
index 0000000..fc007a9
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/e8/b05b77126996001013e892f2240cdbac
@@ -0,0 +1,89 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ //last_tick = HAL_GetTick();
+ return; //placeholder
+}
+
+void
+breadboard(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+/*
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ //walkingman(pedSPD);
+ //dimmer();
+}
+*.
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f014bbe36496001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f014bbe36496001013e892f2240cdbac
new file mode 100644
index 0000000..5bfa001
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f014bbe36496001013e892f2240cdbac
@@ -0,0 +1,86 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ HAL_Delay(pedSPD);
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+ return; // placeholder
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ea/e02bed10ae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/ea/e02bed10ae9600101605f36318c5a03f
new file mode 100644
index 0000000..0e2bc46
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/ea/e02bed10ae9600101605f36318c5a03f
@@ -0,0 +1,79 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+ switch (trafflight_i) {
+ }
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/eb/302699bdab9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/eb/302699bdab9600101605f36318c5a03f
new file mode 100644
index 0000000..73152f2
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/eb/302699bdab9600101605f36318c5a03f
@@ -0,0 +1,83 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+ int ldelay2 = traffSPD * 2;
+ int ldelay3 = traffSPD * 3;
+
+ if ((trafftick_curr - redlight_last) >= traffSPD) {
+ redlight_last = trafftick_curr;
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ }
+
+ if ((trafftick_curr - grnlight_last) >= ldelay2) {
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ }
+
+ if ((trafftick_curr - trafftick_last) >= ldelay3) {
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ef/30302e02af9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/ef/30302e02af9600101605f36318c5a03f
new file mode 100644
index 0000000..feed2b8
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/ef/30302e02af9600101605f36318c5a03f
@@ -0,0 +1,98 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin &&
+ Y_Prt, Y_Pin &&
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ef/e012d765f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/ef/e012d765f795001014a1b349f7adbbd1
deleted file mode 100644
index e35d7bb..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/ef/e012d765f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/f/a0c87389f895001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/f/a0c87389f895001014a1b349f7adbbd1
deleted file mode 100644
index ce2774c..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/f/a0c87389f895001014a1b349f7adbbd1
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(333);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(333);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- // Green Light
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(333);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/f/c0b69abbae9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/f/c0b69abbae9600101605f36318c5a03f
new file mode 100644
index 0000000..7e695b4
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/f/c0b69abbae9600101605f36318c5a03f
@@ -0,0 +1,94 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_i = 0;
+
+void
+starttick(void)
+{
+ trafftick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(
+ R_Prt, R_Pin |
+ Y_Prt, Y_Pin |
+ G_Prt, G_Pin,
+ GPIO_PIN_RESET
+ );
+
+ switch (trafflight_i) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin);
+ break;
+ }
+
+ trafflight_i = (trafflight_i + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/f7/a0d46dd26296001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/f7/a0d46dd26296001013e892f2240cdbac
new file mode 100644
index 0000000..11a6737
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/f7/a0d46dd26296001013e892f2240cdbac
@@ -0,0 +1,19 @@
+/*
+ * breadboard.h
+ *
+ * Created on: Sep 20, 2025
+ * Author: ja
+ */
+
+#ifndef INC_BREADBOARD_H_
+#define INC_BREADBOARD_H_
+
+void ticksync(void);
+
+void trafflight(int);
+void walkingman(int);
+void dimmer(void);
+
+void breadboard(int, int);
+
+#endif /* INC_BREADBOARD_H_ */
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ee/8079c479f995001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/f9/b0a5b4a35f96001013e892f2240cdbac
similarity index 52%
rename from .metadata/.plugins/org.eclipse.core.resources/.history/ee/8079c479f995001014a1b349f7adbbd1
rename to .metadata/.plugins/org.eclipse.core.resources/.history/f9/b0a5b4a35f96001013e892f2240cdbac
index aedbc59..c71b5ac 100644
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/ee/8079c479f995001014a1b349f7adbbd1
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/f9/b0a5b4a35f96001013e892f2240cdbac
@@ -23,24 +23,37 @@
#include "main.h"
#include "breadboard.h"
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+
+
void
breadboard(int traffSPD)
{
+ // =============
// Traffic Light
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_SET);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_SET);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
// Walk signal
+ // ============
// Light dimmer
}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/fb/c0aca9835f96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/fb/c0aca9835f96001013e892f2240cdbac
new file mode 100644
index 0000000..29393b2
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/fb/c0aca9835f96001013e892f2240cdbac
@@ -0,0 +1,57 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+breadboard(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/fc/10a6a16b6396001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/fc/10a6a16b6396001013e892f2240cdbac
new file mode 100644
index 0000000..13aa73d
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/fc/10a6a16b6396001013e892f2240cdbac
@@ -0,0 +1,82 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+tickinit(void)
+{
+ last_tick = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ // =============
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+}
+
+void
+walkingman(int pedSPD)
+{
+ // ===========
+ // Walk signal
+
+}
+
+void
+dimmer(void)
+{
+ // ============
+ // Light dimmer
+
+}
+
+void
+breadboard(int traffSPD, int pedSPD)
+{
+ trafflight(traffSPD);
+ walkingman(pedSPD);
+ dimmer();
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/fc/606ef369f695001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/fc/606ef369f695001014a1b349f7adbbd1
deleted file mode 100644
index 1f3e004..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/fc/606ef369f695001014a1b349f7adbbd1
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePiN(s=);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin();
- HAL_Delay();
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/fc/908fa088f795001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/fc/908fa088f795001014a1b349f7adbbd1
deleted file mode 100644
index e35d7bb..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/fc/908fa088f795001014a1b349f7adbbd1
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(500);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- HAL_GPIO_TogglePin();
-
- HAL_GPIO_TogglePin();
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/fc/d012730f5d96001013e892f2240cdbac b/.metadata/.plugins/org.eclipse.core.resources/.history/fc/d012730f5d96001013e892f2240cdbac
new file mode 100644
index 0000000..9c0f9d1
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/fc/d012730f5d96001013e892f2240cdbac
@@ -0,0 +1,56 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+
+void
+breadboard(int traffSPD)
+{
+ // Traffic Light
+
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+
+ // ===========
+ // Walk signal
+
+ // ============
+ // Light dimmer
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/fc/f01b5cb9af9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/fc/f01b5cb9af9600101605f36318c5a03f
new file mode 100644
index 0000000..b5e1971
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/fc/f01b5cb9af9600101605f36318c5a03f
@@ -0,0 +1,730 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file : main.c
+ * @brief : Main program body
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2025 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 "cmsis_os.h"
+#include "usb_host.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "breadboard.h"
+
+/* 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 ---------------------------------------------------------*/
+CRC_HandleTypeDef hcrc;
+
+DMA2D_HandleTypeDef hdma2d;
+
+I2C_HandleTypeDef hi2c3;
+
+LTDC_HandleTypeDef hltdc;
+
+SPI_HandleTypeDef hspi5;
+
+TIM_HandleTypeDef htim1;
+
+UART_HandleTypeDef huart1;
+
+SDRAM_HandleTypeDef hsdram1;
+
+osThreadId defaultTaskHandle;
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+void SystemClock_Config(void);
+static void MX_GPIO_Init(void);
+static void MX_CRC_Init(void);
+static void MX_DMA2D_Init(void);
+static void MX_FMC_Init(void);
+static void MX_I2C3_Init(void);
+static void MX_LTDC_Init(void);
+static void MX_SPI5_Init(void);
+static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+void StartDefaultTask(void const * argument);
+
+/* 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)
+{
+
+ /* USER CODE BEGIN 1 */
+
+ /* USER CODE END 1 */
+
+ /* MCU Configuration--------------------------------------------------------*/
+
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+ HAL_Init();
+
+ /* USER CODE BEGIN Init */
+
+ /* USER CODE END Init */
+
+ /* Configure the system clock */
+ SystemClock_Config();
+
+ /* USER CODE BEGIN SysInit */
+
+ /* USER CODE END SysInit */
+
+ /* Initialize all configured peripherals */
+ MX_GPIO_Init();
+ MX_CRC_Init();
+ MX_DMA2D_Init();
+ MX_FMC_Init();
+ MX_I2C3_Init();
+ MX_LTDC_Init();
+ MX_SPI5_Init();
+ MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ /* USER CODE BEGIN 2 */
+
+ /* USER CODE END 2 */
+
+ /* USER CODE BEGIN RTOS_MUTEX */
+ /* add mutexes, ... */
+ /* USER CODE END RTOS_MUTEX */
+
+ /* USER CODE BEGIN RTOS_SEMAPHORES */
+ /* add semaphores, ... */
+ /* USER CODE END RTOS_SEMAPHORES */
+
+ /* USER CODE BEGIN RTOS_TIMERS */
+ /* start timers, add new ones, ... */
+ /* USER CODE END RTOS_TIMERS */
+
+ /* USER CODE BEGIN RTOS_QUEUES */
+ /* add queues, ... */
+ /* USER CODE END RTOS_QUEUES */
+
+ /* Create the thread(s) */
+ /* definition and creation of defaultTask */
+ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
+ //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
+
+ /* USER CODE BEGIN RTOS_THREADS */
+ /* add threads, ... */
+ /* USER CODE END RTOS_THREADS */
+
+ /* Start scheduler */
+ //osKernelStart();
+
+ /* We should never get here as control is now taken by the scheduler */
+
+ /* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ while (1)
+ {
+ trafflight(333, 500);
+ /* USER CODE END WHILE */
+
+ /* USER CODE BEGIN 3 */
+ }
+ /* 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_HSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = 4;
+ RCC_OscInitStruct.PLL.PLLN = 72;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+ RCC_OscInitStruct.PLL.PLLQ = 3;
+ 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_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ Error_Handler();
+ }
+}
+
+/**
+ * @brief CRC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_CRC_Init(void)
+{
+
+ /* USER CODE BEGIN CRC_Init 0 */
+
+ /* USER CODE END CRC_Init 0 */
+
+ /* USER CODE BEGIN CRC_Init 1 */
+
+ /* USER CODE END CRC_Init 1 */
+ hcrc.Instance = CRC;
+ if (HAL_CRC_Init(&hcrc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN CRC_Init 2 */
+
+ /* USER CODE END CRC_Init 2 */
+
+}
+
+/**
+ * @brief DMA2D Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_DMA2D_Init(void)
+{
+
+ /* USER CODE BEGIN DMA2D_Init 0 */
+
+ /* USER CODE END DMA2D_Init 0 */
+
+ /* USER CODE BEGIN DMA2D_Init 1 */
+
+ /* USER CODE END DMA2D_Init 1 */
+ hdma2d.Instance = DMA2D;
+ hdma2d.Init.Mode = DMA2D_M2M;
+ hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
+ hdma2d.Init.OutputOffset = 0;
+ hdma2d.LayerCfg[1].InputOffset = 0;
+ hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
+ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
+ hdma2d.LayerCfg[1].InputAlpha = 0;
+ if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN DMA2D_Init 2 */
+
+ /* USER CODE END DMA2D_Init 2 */
+
+}
+
+/**
+ * @brief I2C3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_I2C3_Init(void)
+{
+
+ /* USER CODE BEGIN I2C3_Init 0 */
+
+ /* USER CODE END I2C3_Init 0 */
+
+ /* USER CODE BEGIN I2C3_Init 1 */
+
+ /* USER CODE END I2C3_Init 1 */
+ hi2c3.Instance = I2C3;
+ hi2c3.Init.ClockSpeed = 100000;
+ hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
+ hi2c3.Init.OwnAddress1 = 0;
+ hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ hi2c3.Init.OwnAddress2 = 0;
+ hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ if (HAL_I2C_Init(&hi2c3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Analogue filter
+ */
+ if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /** Configure Digital filter
+ */
+ if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN I2C3_Init 2 */
+
+ /* USER CODE END I2C3_Init 2 */
+
+}
+
+/**
+ * @brief LTDC Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_LTDC_Init(void)
+{
+
+ /* USER CODE BEGIN LTDC_Init 0 */
+
+ /* USER CODE END LTDC_Init 0 */
+
+ LTDC_LayerCfgTypeDef pLayerCfg = {0};
+
+ /* USER CODE BEGIN LTDC_Init 1 */
+
+ /* USER CODE END LTDC_Init 1 */
+ hltdc.Instance = LTDC;
+ hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
+ hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
+ hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
+ hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
+ hltdc.Init.HorizontalSync = 9;
+ hltdc.Init.VerticalSync = 1;
+ hltdc.Init.AccumulatedHBP = 29;
+ hltdc.Init.AccumulatedVBP = 3;
+ hltdc.Init.AccumulatedActiveW = 269;
+ hltdc.Init.AccumulatedActiveH = 323;
+ hltdc.Init.TotalWidth = 279;
+ hltdc.Init.TotalHeigh = 327;
+ hltdc.Init.Backcolor.Blue = 0;
+ hltdc.Init.Backcolor.Green = 0;
+ hltdc.Init.Backcolor.Red = 0;
+ if (HAL_LTDC_Init(&hltdc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ pLayerCfg.WindowX0 = 0;
+ pLayerCfg.WindowX1 = 240;
+ pLayerCfg.WindowY0 = 0;
+ pLayerCfg.WindowY1 = 320;
+ pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
+ pLayerCfg.Alpha = 255;
+ pLayerCfg.Alpha0 = 0;
+ pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
+ pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
+ pLayerCfg.FBStartAdress = 0xD0000000;
+ pLayerCfg.ImageWidth = 240;
+ pLayerCfg.ImageHeight = 320;
+ pLayerCfg.Backcolor.Blue = 0;
+ pLayerCfg.Backcolor.Green = 0;
+ pLayerCfg.Backcolor.Red = 0;
+ if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN LTDC_Init 2 */
+
+ /* USER CODE END LTDC_Init 2 */
+
+}
+
+/**
+ * @brief SPI5 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_SPI5_Init(void)
+{
+
+ /* USER CODE BEGIN SPI5_Init 0 */
+
+ /* USER CODE END SPI5_Init 0 */
+
+ /* USER CODE BEGIN SPI5_Init 1 */
+
+ /* USER CODE END SPI5_Init 1 */
+ /* SPI5 parameter configuration*/
+ hspi5.Instance = SPI5;
+ hspi5.Init.Mode = SPI_MODE_MASTER;
+ hspi5.Init.Direction = SPI_DIRECTION_2LINES;
+ hspi5.Init.DataSize = SPI_DATASIZE_8BIT;
+ hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
+ hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
+ hspi5.Init.NSS = SPI_NSS_SOFT;
+ hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
+ hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
+ hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
+ hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+ hspi5.Init.CRCPolynomial = 10;
+ if (HAL_SPI_Init(&hspi5) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN SPI5_Init 2 */
+
+ /* USER CODE END SPI5_Init 2 */
+
+}
+
+/**
+ * @brief TIM1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM1_Init(void)
+{
+
+ /* USER CODE BEGIN TIM1_Init 0 */
+
+ /* USER CODE END TIM1_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* USER CODE BEGIN TIM1_Init 1 */
+
+ /* USER CODE END TIM1_Init 1 */
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = 65535;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.RepetitionCounter = 0;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM1_Init 2 */
+
+ /* USER CODE END TIM1_Init 2 */
+
+}
+
+/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/* FMC initialization function */
+static void MX_FMC_Init(void)
+{
+
+ /* USER CODE BEGIN FMC_Init 0 */
+
+ /* USER CODE END FMC_Init 0 */
+
+ FMC_SDRAM_TimingTypeDef SdramTiming = {0};
+
+ /* USER CODE BEGIN FMC_Init 1 */
+
+ /* USER CODE END FMC_Init 1 */
+
+ /** Perform the SDRAM1 memory initialization sequence
+ */
+ hsdram1.Instance = FMC_SDRAM_DEVICE;
+ /* hsdram1.Init */
+ hsdram1.Init.SDBank = FMC_SDRAM_BANK2;
+ hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
+ hsdram1.Init.RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12;
+ hsdram1.Init.MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_16;
+ hsdram1.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
+ hsdram1.Init.CASLatency = FMC_SDRAM_CAS_LATENCY_3;
+ hsdram1.Init.WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
+ hsdram1.Init.SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2;
+ hsdram1.Init.ReadBurst = FMC_SDRAM_RBURST_DISABLE;
+ hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
+ /* SdramTiming */
+ SdramTiming.LoadToActiveDelay = 2;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 7;
+ SdramTiming.WriteRecoveryTime = 3;
+ SdramTiming.RPDelay = 2;
+ SdramTiming.RCDDelay = 2;
+
+ if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
+ {
+ Error_Handler( );
+ }
+
+ /* USER CODE BEGIN FMC_Init 2 */
+
+ /* USER CODE END FMC_Init 2 */
+}
+
+/**
+ * @brief GPIO Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_GPIO_Init(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ /* USER CODE BEGIN MX_GPIO_Init_1 */
+
+ /* USER CODE END MX_GPIO_Init_1 */
+
+ /* GPIO Ports Clock Enable */
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOH_CLK_ENABLE();
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
+
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */
+ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin;
+ 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);
+
+ /*Configure GPIO pins : B1_Pin MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */
+ GPIO_InitStruct.Pin = B1_Pin|MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : ACP_RST_Pin */
+ GPIO_InitStruct.Pin = ACP_RST_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : OTG_FS_OC_Pin */
+ GPIO_InitStruct.Pin = OTG_FS_OC_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : BOOT1_Pin */
+ GPIO_InitStruct.Pin = BOOT1_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pin : TE_Pin */
+ GPIO_InitStruct.Pin = TE_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */
+ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+ /*Configure GPIO pins : LD3_Pin LD4_Pin */
+ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
+
+ /* USER CODE BEGIN MX_GPIO_Init_2 */
+
+ /* USER CODE END MX_GPIO_Init_2 */
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+/* USER CODE BEGIN Header_StartDefaultTask */
+/**
+ * @brief Function implementing the defaultTask thread.
+ * @param argument: Not used
+ * @retval None
+ */
+/* USER CODE END Header_StartDefaultTask */
+void StartDefaultTask(void const * argument)
+{
+ /* init code for USB_HOST */
+ MX_USB_HOST_Init();
+ /* USER CODE BEGIN 5 */
+ /* Infinite loop */
+ for(;;)
+ {
+ osDelay(1);
+ }
+ /* USER CODE END 5 */
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @note This function is called when TIM6 interrupt took place, inside
+ * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
+ * a global variable "uwTick" used as application time base.
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
+{
+ /* USER CODE BEGIN Callback 0 */
+
+ /* USER CODE END Callback 0 */
+ if (htim->Instance == TIM6)
+ {
+ HAL_IncTick();
+ }
+ /* USER CODE BEGIN Callback 1 */
+
+ /* USER CODE END Callback 1 */
+}
+
+/**
+ * @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/.metadata/.plugins/org.eclipse.core.resources/.history/fe/704da1c0f895001014a1b349f7adbbd1 b/.metadata/.plugins/org.eclipse.core.resources/.history/fe/704da1c0f895001014a1b349f7adbbd1
deleted file mode 100644
index 6291a60..0000000
--- a/.metadata/.plugins/org.eclipse.core.resources/.history/fe/704da1c0f895001014a1b349f7adbbd1
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * breadboard.c
- *
- * Created on: Sep 17, 2025
- * Author: ja
- */
-
-/*
- * #define RedLight_Pin GPIO_PIN_2
- * #define RedLight_GPIO_Port GPIOE
- *
- * #define YellowLight_Pin GPIO_PIN_3
- * #define YellowLight_GPIO_Port GPIOE
- *
- * #define GreenLight_Pin GPIO_PIN_4
- * #define GreenLight_GPIO_Port GPIOE
- *
- * RedLight: PE2
- * YellowLight: PE3
- * GreenLight: PE4
- */
-
-#include "main.h"
-
-#define RedLight_Port RedLight_GPIO_Port
-#define YellowLight_Port YellowLight_GPIO_Port
-#define GreenLight_Port GreenLight_GPIO_Port
-
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
-void
-reset_traffic(void)
-{
- HAL_GPIO_WritePin(RedLight_GPIO_Port, RedLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, YellowLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
-}
-
-void
-breadboard(void)
-{
- // Traffic Light
- // Red Light
- HAL_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
- HAL_Delay(333);
- Hal_GPIO_TogglePin(RedLight_Port, RedLight_Pin);
-
- // Yellow Light
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
- HAL_Delay(333);
- HAL_GPIO_TogglePin(YellowLight_Port, YellowLight_Pin);
-
- // Green Light
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
- HAL_DELAY(333);
- HAL_GPIO_TogglePin(GreenLight_Port, GreenLight_Pin);
-
- // Walk signal
-
- // Light dimmer
-}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a0fc1d32ad9600101605f36318c5a03f b/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a0fc1d32ad9600101605f36318c5a03f
new file mode 100644
index 0000000..5119ff3
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a0fc1d32ad9600101605f36318c5a03f
@@ -0,0 +1,72 @@
+/*
+ * breadboard.c
+ *
+ * Created on: Sep 17, 2025
+ * Author: ja
+ */
+
+/*
+ * #define RedLight_Pin GPIO_PIN_2
+ * #define RedLight_GPIO_Port GPIOE
+ *
+ * #define YellowLight_Pin GPIO_PIN_3
+ * #define YellowLight_GPIO_Port GPIOE
+ *
+ * #define GreenLight_Pin GPIO_PIN_4
+ * #define GreenLight_GPIO_Port GPIOE
+ *
+ * RedLight: PE2
+ * YellowLight: PE3
+ * GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: async? Walk Signal, Light Dimmer
+ */
+
+#include "main.h"
+#include "breadboard.h"
+
+#define R_Pin RedLight_Pin
+#define Y_Pin YellowLight_Pin
+#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
+
+#define R_Prt RedLight_GPIO_Port
+#define Y_Prt YellowLight_GPIO_Port
+#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t redlight_last;
+uint32_t ylwlight_last;
+uint32_t grnlight_last;
+
+void
+starttick(void)
+{
+ redlight_last = HAL_GetTick();
+ ylwlight_last = HAL_GetTick();
+ grnlight_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD)
+{
+ /*
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(R_Prt, R_Pin);
+
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
+
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ HAL_Delay(traffSPD);
+ HAL_GPIO_TogglePin(G_Prt, G_Pin);
+ */
+
+ uint32_t trafftick_curr = HAL_GetTick();
+
+
+}
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Calc2/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Calc2/.markers.snap
deleted file mode 100644
index 0b368ce..0000000
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Calc2/.markers.snap and /dev/null differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Calc2/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Calc2/.syncinfo.snap
deleted file mode 100644
index 0b368ce..0000000
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Calc2/.syncinfo.snap and /dev/null differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Calculator/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Calculator/.markers.snap
deleted file mode 100644
index 0b368ce..0000000
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Calculator/.markers.snap and /dev/null differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Calculator/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Calculator/.syncinfo.snap
deleted file mode 100644
index 0b368ce..0000000
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Calculator/.syncinfo.snap and /dev/null differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/MyNewProject/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/MyNewProject/.markers.snap
deleted file mode 100644
index 0b368ce..0000000
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/MyNewProject/.markers.snap and /dev/null differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/MyNewProject/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/MyNewProject/.syncinfo.snap
deleted file mode 100644
index 0b368ce..0000000
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/MyNewProject/.syncinfo.snap and /dev/null differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.indexes/bf/be/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.indexes/bf/be/history.index
index febbf99..9d865cd 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.indexes/bf/be/history.index and b/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.indexes/bf/be/history.index differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.indexes/bf/c4/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.indexes/bf/c4/history.index
index 5a3d387..cbfb302 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.indexes/bf/c4/history.index and b/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.indexes/bf/c4/history.index differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.markers b/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.markers
index 14e38b9..303c7d5 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.markers and b/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.markers differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.markers.snap
deleted file mode 100644
index 0b368ce..0000000
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.markers.snap and /dev/null differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.syncinfo.snap
deleted file mode 100644
index 0b368ce..0000000
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/TrafficLightsPlus/.syncinfo.snap and /dev/null differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap
deleted file mode 100644
index 0b368ce..0000000
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap and /dev/null differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/16.tree b/.metadata/.plugins/org.eclipse.core.resources/.root/17.tree
similarity index 76%
rename from .metadata/.plugins/org.eclipse.core.resources/.root/16.tree
rename to .metadata/.plugins/org.eclipse.core.resources/.root/17.tree
index 63189b6..58557b8 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.root/16.tree and b/.metadata/.plugins/org.eclipse.core.resources/.root/17.tree differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
index a5ea2a7..96c4b5b 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources and b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/16.snap b/.metadata/.plugins/org.eclipse.core.resources/16.snap
deleted file mode 100644
index baea677..0000000
Binary files a/.metadata/.plugins/org.eclipse.core.resources/16.snap and /dev/null differ
diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
index bab427a..f205b55 100644
--- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
+++ b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
@@ -1,12 +1,3 @@
eclipse.preferences.version=1
-org.eclipse.debug.ui.MemoryHistoryKnownColor=235,235,235
-org.eclipse.debug.ui.MemoryHistoryUnknownColor=170,175,185
-org.eclipse.debug.ui.PREF_CHANGED_VALUE_BACKGROUND=150,80,115
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=\n\n
-org.eclipse.debug.ui.changedDebugElement=255,128,128
-org.eclipse.debug.ui.consoleBackground=53,53,53
-org.eclipse.debug.ui.errorColor=225,30,70
-org.eclipse.debug.ui.inColor=140,175,210
-org.eclipse.debug.ui.outColor=235,235,235
-overriddenByCSS=,org.eclipse.debug.ui.MemoryHistoryKnownColor,org.eclipse.debug.ui.MemoryHistoryUnknownColor,org.eclipse.debug.ui.PREF_CHANGED_VALUE_BACKGROUND,org.eclipse.debug.ui.changedDebugElement,org.eclipse.debug.ui.consoleBackground,org.eclipse.debug.ui.errorColor,org.eclipse.debug.ui.inColor,org.eclipse.debug.ui.outColor,
preferredTargets=org.eclipse.cdt.debug.ui.toggleCBreakpointTarget,org.eclipse.cdt.debug.ui.toggleCDynamicPrintfTarget\:org.eclipse.cdt.debug.ui.toggleCBreakpointTarget|
diff --git a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
index 1e46af5..6ec711f 100644
--- a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
+++ b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
@@ -1,6 +1,6 @@
-
+
activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration
@@ -226,11 +226,24 @@
active
noFocus
-
+
Editor
removeOnHide
org.eclipse.cdt.ui.editor.CEditor
active
+ activeOnClose
+
+
+
+ Editor
+ removeOnHide
+ org.eclipse.cdt.ui.editor.CEditor
+
+
+
+ Editor
+ removeOnHide
+ org.eclipse.cdt.ui.editor.CEditor
@@ -244,7 +257,7 @@
ViewMenu
menuContribution:menu
-
+
@@ -261,7 +274,7 @@
-
+
View
categoryTag:General
@@ -292,7 +305,7 @@
ViewMenu
menuContribution:menu
-
+
@@ -316,7 +329,7 @@
ViewMenu
menuContribution:menu
-
+
@@ -346,7 +359,7 @@
ViewMenu
menuContribution:menu
-
+
@@ -385,7 +398,7 @@
Draggable
-
+
toolbarSeparator
@@ -393,8 +406,8 @@
Draggable
-
-
+
+
toolbarSeparator
@@ -418,10 +431,7 @@
Draggable
-
-
-
- Draggable
+
toolbarSeparator
@@ -1310,18 +1320,18 @@
View
categoryTag:General
-
-
+
+
glue
move_after:PerspectiveSpacer
SHOW_RESTORE_MENU
-
+
move_after:Spacer Glue
HIDEABLE
SHOW_RESTORE_MENU
-
+
glue
move_after:SearchField
SHOW_RESTORE_MENU
diff --git a/.metadata/version.ini b/.metadata/version.ini
index da1a4f1..b7c9a0c 100644
--- a/.metadata/version.ini
+++ b/.metadata/version.ini
@@ -1,3 +1,3 @@
-#Sat Sep 20 14:37:30 CDT 2025
+#Sat Sep 20 22:34:34 CDT 2025
org.eclipse.core.runtime=2
org.eclipse.platform=4.33.0.v20240903-0240
diff --git a/TrafficLightsPlus/.cproject b/TrafficLightsPlus/.cproject
index 60ad164..cfc367e 100644
--- a/TrafficLightsPlus/.cproject
+++ b/TrafficLightsPlus/.cproject
@@ -219,4 +219,5 @@
+
\ No newline at end of file
diff --git a/TrafficLightsPlus/Core/Inc/breadboard.h b/TrafficLightsPlus/Core/Inc/breadboard.h
index 01b9536..7eda2d7 100644
--- a/TrafficLightsPlus/Core/Inc/breadboard.h
+++ b/TrafficLightsPlus/Core/Inc/breadboard.h
@@ -8,6 +8,8 @@
#ifndef INC_BREADBOARD_H_
#define INC_BREADBOARD_H_
-void breadboard(int);
+void starttick(void);
+
+void trafflight(int, int);
#endif /* INC_BREADBOARD_H_ */
diff --git a/TrafficLightsPlus/Core/Inc/main.h b/TrafficLightsPlus/Core/Inc/main.h
index ba578ff..4ac0ec9 100644
--- a/TrafficLightsPlus/Core/Inc/main.h
+++ b/TrafficLightsPlus/Core/Inc/main.h
@@ -63,6 +63,8 @@ void Error_Handler(void);
#define YellowLight_GPIO_Port GPIOE
#define GreenLight_Pin GPIO_PIN_4
#define GreenLight_GPIO_Port GPIOE
+#define WalkLight_Pin GPIO_PIN_5
+#define WalkLight_GPIO_Port GPIOE
#define PC14_OSC32_IN_Pin GPIO_PIN_14
#define PC14_OSC32_IN_GPIO_Port GPIOC
#define PC15_OSC32_OUT_Pin GPIO_PIN_15
diff --git a/TrafficLightsPlus/Core/Src/breadboard.c b/TrafficLightsPlus/Core/Src/breadboard.c
index 0493565..56e00f5 100644
--- a/TrafficLightsPlus/Core/Src/breadboard.c
+++ b/TrafficLightsPlus/Core/Src/breadboard.c
@@ -18,6 +18,10 @@
* RedLight: PE2
* YellowLight: PE3
* GreenLight: PE4
+ * WalkLight: PE5
+ *
+ * Done: Traffic Light
+ * TODO: Light Dimmer
*/
#include "main.h"
@@ -26,30 +30,53 @@
#define R_Pin RedLight_Pin
#define Y_Pin YellowLight_Pin
#define G_Pin GreenLight_Pin
+#define W_Pin WalkLight_Pin
#define R_Prt RedLight_GPIO_Port
#define Y_Prt YellowLight_GPIO_Port
#define G_Prt GreenLight_GPIO_Port
+#define W_Prt WalkLight_GPIO_Port
+
+uint32_t trafftick_last;
+uint32_t walktick_last;
+
+uint8_t trafflight_index = 0;
void
-breadboard(int traffSPD)
+starttick(void)
{
- // Traffic Light
-
- HAL_GPIO_TogglePin(R_Prt, R_Pin);
- HAL_Delay(traffSPD);
- HAL_GPIO_TogglePin(R_Prt, R_Pin);
-
- HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
- HAL_Delay(traffSPD);
- HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
-
- HAL_GPIO_TogglePin(G_Prt, G_Pin);
- HAL_Delay(traffSPD);
- HAL_GPIO_TogglePin(G_Prt, G_Pin);
-
-
- // Walk signal
-
- // Light dimmer
+ trafftick_last = HAL_GetTick();
+ walktick_last = HAL_GetTick();
+}
+
+void
+trafflight(int traffSPD, int walkSPD)
+{
+ uint32_t trafftick_curr = HAL_GetTick();
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+
+ switch (trafflight_index) {
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_SET);
+ break;
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_SET);
+ break;
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_SET);
+ break;
+ }
+
+ trafflight_index = (trafflight_index + 1) % 3;
+ trafftick_last = trafftick_curr;
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ walktick_last = trafftick_curr;
+ }
}
diff --git a/TrafficLightsPlus/Core/Src/main.c b/TrafficLightsPlus/Core/Src/main.c
index c569d6d..a40e2fd 100644
--- a/TrafficLightsPlus/Core/Src/main.c
+++ b/TrafficLightsPlus/Core/Src/main.c
@@ -159,9 +159,10 @@ int main(void)
/* Infinite loop */
/* USER CODE BEGIN WHILE */
+ starttick();
while (1)
{
- breadboard(333);
+ trafflight(2*1000, 10*1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
@@ -574,7 +575,7 @@ static void MX_GPIO_Init(void)
__HAL_RCC_GPIOD_CLK_ENABLE();
/*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(GPIOE, RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET);
@@ -588,8 +589,8 @@ static void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET);
- /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin */
- GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin;
+ /*Configure GPIO pins : RedLight_Pin YellowLight_Pin GreenLight_Pin WalkLight_Pin */
+ GPIO_InitStruct.Pin = RedLight_Pin|YellowLight_Pin|GreenLight_Pin|WalkLight_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
diff --git a/TrafficLightsPlus/Debug/Core/Src/breadboard.cyclo b/TrafficLightsPlus/Debug/Core/Src/breadboard.cyclo
index f4fec1a..5d62bac 100644
--- a/TrafficLightsPlus/Debug/Core/Src/breadboard.cyclo
+++ b/TrafficLightsPlus/Debug/Core/Src/breadboard.cyclo
@@ -1 +1,2 @@
-../Core/Src/breadboard.c:36:1:breadboard 1
+../Core/Src/breadboard.c:46:1:starttick 1
+../Core/Src/breadboard.c:53:1:trafflight 7
diff --git a/TrafficLightsPlus/Debug/Core/Src/breadboard.o b/TrafficLightsPlus/Debug/Core/Src/breadboard.o
index e867997..17e5cf7 100644
Binary files a/TrafficLightsPlus/Debug/Core/Src/breadboard.o and b/TrafficLightsPlus/Debug/Core/Src/breadboard.o differ
diff --git a/TrafficLightsPlus/Debug/Core/Src/breadboard.su b/TrafficLightsPlus/Debug/Core/Src/breadboard.su
index 7ec1a7f..b3969a7 100644
--- a/TrafficLightsPlus/Debug/Core/Src/breadboard.su
+++ b/TrafficLightsPlus/Debug/Core/Src/breadboard.su
@@ -1 +1,2 @@
-../Core/Src/breadboard.c:36:1:breadboard 16 static
+../Core/Src/breadboard.c:46:1:starttick 8 static
+../Core/Src/breadboard.c:53:1:trafflight 24 static
diff --git a/TrafficLightsPlus/Debug/Core/Src/freertos.o b/TrafficLightsPlus/Debug/Core/Src/freertos.o
index 48386e7..0a5387c 100644
Binary files a/TrafficLightsPlus/Debug/Core/Src/freertos.o and b/TrafficLightsPlus/Debug/Core/Src/freertos.o differ
diff --git a/TrafficLightsPlus/Debug/Core/Src/main.cyclo b/TrafficLightsPlus/Debug/Core/Src/main.cyclo
index 20b8c88..4fb3c0c 100644
--- a/TrafficLightsPlus/Debug/Core/Src/main.cyclo
+++ b/TrafficLightsPlus/Debug/Core/Src/main.cyclo
@@ -1,14 +1,14 @@
../Core/Src/main.c:93:5:main 1
-../Core/Src/main.c:176:6:SystemClock_Config 3
-../Core/Src/main.c:222:13:MX_CRC_Init 2
-../Core/Src/main.c:248:13:MX_DMA2D_Init 3
-../Core/Src/main.c:285:13:MX_I2C3_Init 4
-../Core/Src/main.c:333:13:MX_LTDC_Init 3
-../Core/Src/main.c:395:13:MX_SPI5_Init 2
-../Core/Src/main.c:433:13:MX_TIM1_Init 4
-../Core/Src/main.c:479:13:MX_USART1_UART_Init 2
-../Core/Src/main.c:508:13:MX_FMC_Init 2
-../Core/Src/main.c:559:13:MX_GPIO_Init 1
-../Core/Src/main.c:666:6:StartDefaultTask 1
-../Core/Src/main.c:687:6:HAL_TIM_PeriodElapsedCallback 2
-../Core/Src/main.c:705:6:Error_Handler 1
+../Core/Src/main.c:177:6:SystemClock_Config 3
+../Core/Src/main.c:223:13:MX_CRC_Init 2
+../Core/Src/main.c:249:13:MX_DMA2D_Init 3
+../Core/Src/main.c:286:13:MX_I2C3_Init 4
+../Core/Src/main.c:334:13:MX_LTDC_Init 3
+../Core/Src/main.c:396:13:MX_SPI5_Init 2
+../Core/Src/main.c:434:13:MX_TIM1_Init 4
+../Core/Src/main.c:480:13:MX_USART1_UART_Init 2
+../Core/Src/main.c:509:13:MX_FMC_Init 2
+../Core/Src/main.c:560:13:MX_GPIO_Init 1
+../Core/Src/main.c:667:6:StartDefaultTask 1
+../Core/Src/main.c:688:6:HAL_TIM_PeriodElapsedCallback 2
+../Core/Src/main.c:706:6:Error_Handler 1
diff --git a/TrafficLightsPlus/Debug/Core/Src/main.o b/TrafficLightsPlus/Debug/Core/Src/main.o
index 23bcd89..e15428b 100644
Binary files a/TrafficLightsPlus/Debug/Core/Src/main.o and b/TrafficLightsPlus/Debug/Core/Src/main.o differ
diff --git a/TrafficLightsPlus/Debug/Core/Src/main.su b/TrafficLightsPlus/Debug/Core/Src/main.su
index 65f38ca..91393cf 100644
--- a/TrafficLightsPlus/Debug/Core/Src/main.su
+++ b/TrafficLightsPlus/Debug/Core/Src/main.su
@@ -1,14 +1,14 @@
../Core/Src/main.c:93:5:main 8 static
-../Core/Src/main.c:176:6:SystemClock_Config 88 static
-../Core/Src/main.c:222:13:MX_CRC_Init 8 static
-../Core/Src/main.c:248:13:MX_DMA2D_Init 8 static
-../Core/Src/main.c:285:13:MX_I2C3_Init 8 static
-../Core/Src/main.c:333:13:MX_LTDC_Init 64 static
-../Core/Src/main.c:395:13:MX_SPI5_Init 8 static
-../Core/Src/main.c:433:13:MX_TIM1_Init 32 static
-../Core/Src/main.c:479:13:MX_USART1_UART_Init 8 static
-../Core/Src/main.c:508:13:MX_FMC_Init 40 static
-../Core/Src/main.c:559:13:MX_GPIO_Init 64 static
-../Core/Src/main.c:666:6:StartDefaultTask 16 static
-../Core/Src/main.c:687:6:HAL_TIM_PeriodElapsedCallback 16 static
-../Core/Src/main.c:705:6:Error_Handler 4 static,ignoring_inline_asm
+../Core/Src/main.c:177:6:SystemClock_Config 88 static
+../Core/Src/main.c:223:13:MX_CRC_Init 8 static
+../Core/Src/main.c:249:13:MX_DMA2D_Init 8 static
+../Core/Src/main.c:286:13:MX_I2C3_Init 8 static
+../Core/Src/main.c:334:13:MX_LTDC_Init 64 static
+../Core/Src/main.c:396:13:MX_SPI5_Init 8 static
+../Core/Src/main.c:434:13:MX_TIM1_Init 32 static
+../Core/Src/main.c:480:13:MX_USART1_UART_Init 8 static
+../Core/Src/main.c:509:13:MX_FMC_Init 40 static
+../Core/Src/main.c:560:13:MX_GPIO_Init 64 static
+../Core/Src/main.c:667:6:StartDefaultTask 16 static
+../Core/Src/main.c:688:6:HAL_TIM_PeriodElapsedCallback 16 static
+../Core/Src/main.c:706:6:Error_Handler 4 static,ignoring_inline_asm
diff --git a/TrafficLightsPlus/Debug/Core/Src/stm32f4xx_hal_msp.o b/TrafficLightsPlus/Debug/Core/Src/stm32f4xx_hal_msp.o
index 1d0fd6f..64b0d88 100644
Binary files a/TrafficLightsPlus/Debug/Core/Src/stm32f4xx_hal_msp.o and b/TrafficLightsPlus/Debug/Core/Src/stm32f4xx_hal_msp.o differ
diff --git a/TrafficLightsPlus/Debug/Core/Src/stm32f4xx_it.o b/TrafficLightsPlus/Debug/Core/Src/stm32f4xx_it.o
index c056e85..7265845 100644
Binary files a/TrafficLightsPlus/Debug/Core/Src/stm32f4xx_it.o and b/TrafficLightsPlus/Debug/Core/Src/stm32f4xx_it.o differ
diff --git a/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Class/CDC/Src/usbh_cdc.o b/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Class/CDC/Src/usbh_cdc.o
index 928bdf2..556c1c0 100644
Binary files a/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Class/CDC/Src/usbh_cdc.o and b/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Class/CDC/Src/usbh_cdc.o differ
diff --git a/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_core.o b/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_core.o
index de5de2a..4970f05 100644
Binary files a/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_core.o and b/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_core.o differ
diff --git a/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_ctlreq.o b/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_ctlreq.o
index a02451c..c45cdd2 100644
Binary files a/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_ctlreq.o and b/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_ctlreq.o differ
diff --git a/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_ioreq.o b/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_ioreq.o
index adfffa3..f3c18c9 100644
Binary files a/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_ioreq.o and b/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_ioreq.o differ
diff --git a/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_pipes.o b/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_pipes.o
index 7369f3d..035c1a9 100644
Binary files a/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_pipes.o and b/TrafficLightsPlus/Debug/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_pipes.o differ
diff --git a/TrafficLightsPlus/Debug/TrafficLightsPlus.elf b/TrafficLightsPlus/Debug/TrafficLightsPlus.elf
index 24dc337..39feb65 100755
Binary files a/TrafficLightsPlus/Debug/TrafficLightsPlus.elf and b/TrafficLightsPlus/Debug/TrafficLightsPlus.elf differ
diff --git a/TrafficLightsPlus/Debug/TrafficLightsPlus.list b/TrafficLightsPlus/Debug/TrafficLightsPlus.list
index 1d962e6..b407c9b 100644
--- a/TrafficLightsPlus/Debug/TrafficLightsPlus.list
+++ b/TrafficLightsPlus/Debug/TrafficLightsPlus.list
@@ -5,49 +5,49 @@ Sections:
Idx Name Size VMA LMA File off Algn
0 .isr_vector 000001ac 08000000 08000000 00001000 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 1 .text 00007d6c 080001b0 080001b0 000011b0 2**4
+ 1 .text 00007dbc 080001b0 080001b0 000011b0 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .rodata 00000018 08007f1c 08007f1c 00008f1c 2**2
+ 2 .rodata 00000018 08007f6c 08007f6c 00008f6c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 3 .ARM.extab 00000000 08007f34 08007f34 00009010 2**0
+ 3 .ARM.extab 00000000 08007f84 08007f84 00009010 2**0
CONTENTS, READONLY
- 4 .ARM 00000008 08007f34 08007f34 00008f34 2**2
+ 4 .ARM 00000008 08007f84 08007f84 00008f84 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 5 .preinit_array 00000000 08007f3c 08007f3c 00009010 2**0
+ 5 .preinit_array 00000000 08007f8c 08007f8c 00009010 2**0
CONTENTS, ALLOC, LOAD, DATA
- 6 .init_array 00000004 08007f3c 08007f3c 00008f3c 2**2
+ 6 .init_array 00000004 08007f8c 08007f8c 00008f8c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 7 .fini_array 00000004 08007f40 08007f40 00008f40 2**2
+ 7 .fini_array 00000004 08007f90 08007f90 00008f90 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 8 .data 00000010 20000000 08007f44 00009000 2**2
+ 8 .data 00000010 20000000 08007f94 00009000 2**2
CONTENTS, ALLOC, LOAD, DATA
9 .ccmram 00000000 10000000 10000000 00009010 2**0
CONTENTS
- 10 .bss 00000798 20000010 20000010 00009010 2**2
+ 10 .bss 000007a4 20000010 20000010 00009010 2**2
ALLOC
- 11 ._user_heap_stack 00000600 200007a8 200007a8 00009010 2**0
+ 11 ._user_heap_stack 00000604 200007b4 200007b4 00009010 2**0
ALLOC
12 .ARM.attributes 00000030 00000000 00000000 00009010 2**0
CONTENTS, READONLY
- 13 .debug_info 00024fcd 00000000 00000000 00009040 2**0
+ 13 .debug_info 0002508f 00000000 00000000 00009040 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 14 .debug_abbrev 00004e45 00000000 00000000 0002e00d 2**0
+ 14 .debug_abbrev 00004eb9 00000000 00000000 0002e0cf 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 15 .debug_aranges 00002090 00000000 00000000 00032e58 2**3
+ 15 .debug_aranges 00002098 00000000 00000000 00032f88 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 16 .debug_rnglists 00001956 00000000 00000000 00034ee8 2**0
+ 16 .debug_rnglists 0000195d 00000000 00000000 00035020 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 17 .debug_macro 00028e32 00000000 00000000 0003683e 2**0
+ 17 .debug_macro 00028e4c 00000000 00000000 0003697d 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 18 .debug_line 00025434 00000000 00000000 0005f670 2**0
+ 18 .debug_line 00025485 00000000 00000000 0005f7c9 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 19 .debug_str 000f41e1 00000000 00000000 00084aa4 2**0
+ 19 .debug_str 000f428b 00000000 00000000 00084c4e 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 20 .comment 00000043 00000000 00000000 00178c85 2**0
+ 20 .comment 00000043 00000000 00000000 00178ed9 2**0
CONTENTS, READONLY
- 21 .debug_frame 00008bf0 00000000 00000000 00178cc8 2**2
+ 21 .debug_frame 00008c0c 00000000 00000000 00178f1c 2**2
CONTENTS, READONLY, DEBUGGING, OCTETS
- 22 .debug_line_str 00000051 00000000 00000000 001818b8 2**0
+ 22 .debug_line_str 00000051 00000000 00000000 00181b28 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
Disassembly of section .text:
@@ -66,7 +66,7 @@ Disassembly of section .text:
80001c6: bd10 pop {r4, pc}
80001c8: 20000010 .word 0x20000010
80001cc: 00000000 .word 0x00000000
- 80001d0: 08007f04 .word 0x08007f04
+ 80001d0: 08007f54 .word 0x08007f54
080001d4 :
80001d4: b508 push {r3, lr}
@@ -78,7 +78,7 @@ Disassembly of section .text:
80001e2: bd08 pop {r3, pc}
80001e4: 00000000 .word 0x00000000
80001e8: 20000014 .word 0x20000014
- 80001ec: 08007f04 .word 0x08007f04
+ 80001ec: 08007f54 .word 0x08007f54
080001f0 <__aeabi_uldivmod>:
80001f0: b953 cbnz r3, 8000208 <__aeabi_uldivmod+0x18>
@@ -371,6945 +371,6932 @@ Disassembly of section .text:
8000518: 4770 bx lr
800051a: bf00 nop
-0800051c :
-#define G_Prt GreenLight_GPIO_Port
+0800051c :
+
+uint8_t trafflight_index = 0;
-// HAL_GPIO_WritePin(LED_EXT_GPIO_Port, LED_EXT_Pin, GPIO_PIN_RESET);
void
-breadboard(int traffSPD)
+starttick(void)
{
800051c: b580 push {r7, lr}
- 800051e: b082 sub sp, #8
- 8000520: af00 add r7, sp, #0
- 8000522: 6078 str r0, [r7, #4]
- HAL_GPIO_WritePin(YellowLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GreenLight_GPIO_Port, GreenLight_Pin, GPIO_PIN_SET);
- HAL_Delay(traffSPD);
- */
-
- HAL_GPIO_TogglePin(R_Prt, R_Pin);
- 8000524: 2104 movs r1, #4
- 8000526: 4813 ldr r0, [pc, #76] @ (8000574 )
- 8000528: f001 fd69 bl 8001ffe
- HAL_Delay(traffSPD);
- 800052c: 687b ldr r3, [r7, #4]
- 800052e: 4618 mov r0, r3
- 8000530: f001 f892 bl 8001658
- HAL_GPIO_TogglePin(R_Prt, R_Pin);
- 8000534: 2104 movs r1, #4
- 8000536: 480f ldr r0, [pc, #60] @ (8000574 )
- 8000538: f001 fd61 bl 8001ffe
-
- HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
- 800053c: 2108 movs r1, #8
- 800053e: 480d ldr r0, [pc, #52] @ (8000574 )
- 8000540: f001 fd5d bl 8001ffe
- HAL_Delay(traffSPD);
- 8000544: 687b ldr r3, [r7, #4]
- 8000546: 4618 mov r0, r3
- 8000548: f001 f886 bl 8001658
- HAL_GPIO_TogglePin(Y_Prt, Y_Pin);
- 800054c: 2108 movs r1, #8
- 800054e: 4809 ldr r0, [pc, #36] @ (8000574 )
- 8000550: f001 fd55 bl 8001ffe
-
- HAL_GPIO_TogglePin(G_Prt, G_Pin);
- 8000554: 2110 movs r1, #16
- 8000556: 4807 ldr r0, [pc, #28] @ (8000574 )
- 8000558: f001 fd51 bl 8001ffe
- HAL_Delay(traffSPD);
- 800055c: 687b ldr r3, [r7, #4]
- 800055e: 4618 mov r0, r3
- 8000560: f001 f87a bl 8001658
- HAL_GPIO_TogglePin(G_Prt, G_Pin);
- 8000564: 2110 movs r1, #16
- 8000566: 4803 ldr r0, [pc, #12] @ (8000574 )
- 8000568: f001 fd49 bl 8001ffe
-
-
- // Walk signal
-
- // Light dimmer
+ 800051e: af00 add r7, sp, #0
+ trafftick_last = HAL_GetTick();
+ 8000520: f001 f8e0 bl 80016e4
+ 8000524: 4603 mov r3, r0
+ 8000526: 4a04 ldr r2, [pc, #16] @ (8000538 )
+ 8000528: 6013 str r3, [r2, #0]
+ walktick_last = HAL_GetTick();
+ 800052a: f001 f8db bl 80016e4
+ 800052e: 4603 mov r3, r0
+ 8000530: 4a02 ldr r2, [pc, #8] @ (800053c )
+ 8000532: 6013 str r3, [r2, #0]
}
- 800056c: bf00 nop
- 800056e: 3708 adds r7, #8
- 8000570: 46bd mov sp, r7
- 8000572: bd80 pop {r7, pc}
- 8000574: 40021000 .word 0x40021000
+ 8000534: bf00 nop
+ 8000536: bd80 pop {r7, pc}
+ 8000538: 2000002c .word 0x2000002c
+ 800053c: 20000030 .word 0x20000030
-08000578 :
+08000540 :
+
+void
+trafflight(int traffSPD, int walkSPD)
+{
+ 8000540: b580 push {r7, lr}
+ 8000542: b084 sub sp, #16
+ 8000544: af00 add r7, sp, #0
+ 8000546: 6078 str r0, [r7, #4]
+ 8000548: 6039 str r1, [r7, #0]
+ uint32_t trafftick_curr = HAL_GetTick();
+ 800054a: f001 f8cb bl 80016e4
+ 800054e: 60f8 str r0, [r7, #12]
+
+ if ((trafftick_curr - trafftick_last) >= traffSPD) {
+ 8000550: 4b2b ldr r3, [pc, #172] @ (8000600 )
+ 8000552: 681b ldr r3, [r3, #0]
+ 8000554: 68fa ldr r2, [r7, #12]
+ 8000556: 1ad2 subs r2, r2, r3
+ 8000558: 687b ldr r3, [r7, #4]
+ 800055a: 429a cmp r2, r3
+ 800055c: d33d bcc.n 80005da
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_RESET);
+ 800055e: 2200 movs r2, #0
+ 8000560: 2104 movs r1, #4
+ 8000562: 4828 ldr r0, [pc, #160] @ (8000604 )
+ 8000564: f001 fd60 bl 8002028
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_RESET);
+ 8000568: 2200 movs r2, #0
+ 800056a: 2108 movs r1, #8
+ 800056c: 4825 ldr r0, [pc, #148] @ (8000604 )
+ 800056e: f001 fd5b bl 8002028
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_RESET);
+ 8000572: 2200 movs r2, #0
+ 8000574: 2110 movs r1, #16
+ 8000576: 4823 ldr r0, [pc, #140] @ (8000604 )
+ 8000578: f001 fd56 bl 8002028
+
+ switch (trafflight_index) {
+ 800057c: 4b22 ldr r3, [pc, #136] @ (8000608 )
+ 800057e: 781b ldrb r3, [r3, #0]
+ 8000580: 2b02 cmp r3, #2
+ 8000582: d012 beq.n 80005aa
+ 8000584: 2b02 cmp r3, #2
+ 8000586: dc16 bgt.n 80005b6
+ 8000588: 2b00 cmp r3, #0
+ 800058a: d002 beq.n 8000592
+ 800058c: 2b01 cmp r3, #1
+ 800058e: d006 beq.n 800059e
+ 8000590: e011 b.n 80005b6
+ case 0:
+ HAL_GPIO_WritePin(R_Prt, R_Pin, GPIO_PIN_SET);
+ 8000592: 2201 movs r2, #1
+ 8000594: 2104 movs r1, #4
+ 8000596: 481b ldr r0, [pc, #108] @ (8000604 )
+ 8000598: f001 fd46 bl 8002028
+ break;
+ 800059c: e00b b.n 80005b6
+ case 1:
+ HAL_GPIO_WritePin(Y_Prt, Y_Pin, GPIO_PIN_SET);
+ 800059e: 2201 movs r2, #1
+ 80005a0: 2108 movs r1, #8
+ 80005a2: 4818 ldr r0, [pc, #96] @ (8000604 )
+ 80005a4: f001 fd40 bl 8002028
+ break;
+ 80005a8: e005 b.n 80005b6
+ case 2:
+ HAL_GPIO_WritePin(G_Prt, G_Pin, GPIO_PIN_SET);
+ 80005aa: 2201 movs r2, #1
+ 80005ac: 2110 movs r1, #16
+ 80005ae: 4815 ldr r0, [pc, #84] @ (8000604 )
+ 80005b0: f001 fd3a bl 8002028
+ break;
+ 80005b4: bf00 nop
+ }
+
+ trafflight_index = (trafflight_index + 1) % 3;
+ 80005b6: 4b14 ldr r3, [pc, #80] @ (8000608 )
+ 80005b8: 781b ldrb r3, [r3, #0]
+ 80005ba: 1c5a adds r2, r3, #1
+ 80005bc: 4b13 ldr r3, [pc, #76] @ (800060c )
+ 80005be: fb83 3102 smull r3, r1, r3, r2
+ 80005c2: 17d3 asrs r3, r2, #31
+ 80005c4: 1ac9 subs r1, r1, r3
+ 80005c6: 460b mov r3, r1
+ 80005c8: 005b lsls r3, r3, #1
+ 80005ca: 440b add r3, r1
+ 80005cc: 1ad1 subs r1, r2, r3
+ 80005ce: b2ca uxtb r2, r1
+ 80005d0: 4b0d ldr r3, [pc, #52] @ (8000608 )
+ 80005d2: 701a strb r2, [r3, #0]
+ trafftick_last = trafftick_curr;
+ 80005d4: 4a0a ldr r2, [pc, #40] @ (8000600 )
+ 80005d6: 68fb ldr r3, [r7, #12]
+ 80005d8: 6013 str r3, [r2, #0]
+ }
+
+ if ((trafftick_curr - walktick_last) >= walkSPD) {
+ 80005da: 4b0d ldr r3, [pc, #52] @ (8000610 )
+ 80005dc: 681b ldr r3, [r3, #0]
+ 80005de: 68fa ldr r2, [r7, #12]
+ 80005e0: 1ad2 subs r2, r2, r3
+ 80005e2: 683b ldr r3, [r7, #0]
+ 80005e4: 429a cmp r2, r3
+ 80005e6: d306 bcc.n 80005f6
+ HAL_GPIO_TogglePin(W_Prt, W_Pin);
+ 80005e8: 2120 movs r1, #32
+ 80005ea: 4806 ldr r0, [pc, #24] @ (8000604 )
+ 80005ec: f001 fd35 bl 800205a
+ walktick_last = trafftick_curr;
+ 80005f0: 4a07 ldr r2, [pc, #28] @ (8000610 )
+ 80005f2: 68fb ldr r3, [r7, #12]
+ 80005f4: 6013 str r3, [r2, #0]
+ }
+}
+ 80005f6: bf00 nop
+ 80005f8: 3710 adds r7, #16
+ 80005fa: 46bd mov sp, r7
+ 80005fc: bd80 pop {r7, pc}
+ 80005fe: bf00 nop
+ 8000600: 2000002c .word 0x2000002c
+ 8000604: 40021000 .word 0x40021000
+ 8000608: 20000034 .word 0x20000034
+ 800060c: 55555556 .word 0x55555556
+ 8000610: 20000030 .word 0x20000030
+
+08000614 :
}
/* USER CODE END 2 */
/* USER CODE BEGIN 4 */
__weak void vApplicationStackOverflowHook(xTaskHandle xTask, signed char *pcTaskName)
{
- 8000578: b480 push {r7}
- 800057a: b083 sub sp, #12
- 800057c: af00 add r7, sp, #0
- 800057e: 6078 str r0, [r7, #4]
- 8000580: 6039 str r1, [r7, #0]
+ 8000614: b480 push {r7}
+ 8000616: b083 sub sp, #12
+ 8000618: af00 add r7, sp, #0
+ 800061a: 6078 str r0, [r7, #4]
+ 800061c: 6039 str r1, [r7, #0]
/* Run time stack overflow checking is performed if
configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook function is
called if a stack overflow is detected. */
}
- 8000582: bf00 nop
- 8000584: 370c adds r7, #12
- 8000586: 46bd mov sp, r7
- 8000588: f85d 7b04 ldr.w r7, [sp], #4
- 800058c: 4770 bx lr
+ 800061e: bf00 nop
+ 8000620: 370c adds r7, #12
+ 8000622: 46bd mov sp, r7
+ 8000624: f85d 7b04 ldr.w r7, [sp], #4
+ 8000628: 4770 bx lr
-0800058e :
+0800062a :
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
- 800058e: b580 push {r7, lr}
- 8000590: af00 add r7, sp, #0
+ 800062a: b580 push {r7, lr}
+ 800062c: af00 add r7, sp, #0
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
- 8000592: f001 f81f bl 80015d4
+ 800062e: f001 f823 bl 8001678
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
- 8000596: f000 f817 bl 80005c8
+ 8000632: f000 f81b bl 800066c
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
- 800059a: f000 fa85 bl 8000aa8
+ 8000636: f000 fa89 bl 8000b4c
MX_CRC_Init();
- 800059e: f000 f87d bl 800069c
+ 800063a: f000 f881 bl 8000740
MX_DMA2D_Init();
- 80005a2: f000 f88f bl 80006c4
+ 800063e: f000 f893 bl 8000768
MX_FMC_Init();
- 80005a6: f000 fa2f bl 8000a08
+ 8000642: f000 fa33 bl 8000aac
MX_I2C3_Init();
- 80005aa: f000 f8bd bl 8000728
+ 8000646: f000 f8c1 bl 80007cc
MX_LTDC_Init();
- 80005ae: f000 f8fb bl 80007a8
+ 800064a: f000 f8ff bl 800084c
MX_SPI5_Init();
- 80005b2: f000 f979 bl 80008a8
+ 800064e: f000 f97d bl 800094c
MX_TIM1_Init();
- 80005b6: f000 f9ad bl 8000914
+ 8000652: f000 f9b1 bl 80009b8
MX_USART1_UART_Init();
- 80005ba: f000 f9fb bl 80009b4
+ 8000656: f000 f9ff bl 8000a58
+
+ /* We should never get here as control is now taken by the scheduler */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
+ starttick();
+ 800065a: f7ff ff5f bl 800051c
while (1)
{
- breadboard(333);
- 80005be: f240 104d movw r0, #333 @ 0x14d
- 80005c2: f7ff ffab bl 800051c
- 80005c6: e7fa b.n 80005be
+ trafflight(2*1000, 10*1000);
+ 800065e: f242 7110 movw r1, #10000 @ 0x2710
+ 8000662: f44f 60fa mov.w r0, #2000 @ 0x7d0
+ 8000666: f7ff ff6b bl 8000540
+ 800066a: e7f8 b.n 800065e
-080005c8 :
+0800066c :
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
- 80005c8: b580 push {r7, lr}
- 80005ca: b094 sub sp, #80 @ 0x50
- 80005cc: af00 add r7, sp, #0
+ 800066c: b580 push {r7, lr}
+ 800066e: b094 sub sp, #80 @ 0x50
+ 8000670: af00 add r7, sp, #0
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
- 80005ce: f107 0320 add.w r3, r7, #32
- 80005d2: 2230 movs r2, #48 @ 0x30
- 80005d4: 2100 movs r1, #0
- 80005d6: 4618 mov r0, r3
- 80005d8: f007 fc5a bl 8007e90
+ 8000672: f107 0320 add.w r3, r7, #32
+ 8000676: 2230 movs r2, #48 @ 0x30
+ 8000678: 2100 movs r1, #0
+ 800067a: 4618 mov r0, r3
+ 800067c: f007 fc30 bl 8007ee0
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- 80005dc: f107 030c add.w r3, r7, #12
- 80005e0: 2200 movs r2, #0
- 80005e2: 601a str r2, [r3, #0]
- 80005e4: 605a str r2, [r3, #4]
- 80005e6: 609a str r2, [r3, #8]
- 80005e8: 60da str r2, [r3, #12]
- 80005ea: 611a str r2, [r3, #16]
+ 8000680: f107 030c add.w r3, r7, #12
+ 8000684: 2200 movs r2, #0
+ 8000686: 601a str r2, [r3, #0]
+ 8000688: 605a str r2, [r3, #4]
+ 800068a: 609a str r2, [r3, #8]
+ 800068c: 60da str r2, [r3, #12]
+ 800068e: 611a str r2, [r3, #16]
/** Configure the main internal regulator output voltage
*/
__HAL_RCC_PWR_CLK_ENABLE();
- 80005ec: 2300 movs r3, #0
- 80005ee: 60bb str r3, [r7, #8]
- 80005f0: 4b28 ldr r3, [pc, #160] @ (8000694 )
- 80005f2: 6c1b ldr r3, [r3, #64] @ 0x40
- 80005f4: 4a27 ldr r2, [pc, #156] @ (8000694 )
- 80005f6: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000
- 80005fa: 6413 str r3, [r2, #64] @ 0x40
- 80005fc: 4b25 ldr r3, [pc, #148] @ (8000694 )
- 80005fe: 6c1b ldr r3, [r3, #64] @ 0x40
- 8000600: f003 5380 and.w r3, r3, #268435456 @ 0x10000000
- 8000604: 60bb str r3, [r7, #8]
- 8000606: 68bb ldr r3, [r7, #8]
+ 8000690: 2300 movs r3, #0
+ 8000692: 60bb str r3, [r7, #8]
+ 8000694: 4b28 ldr r3, [pc, #160] @ (8000738 )
+ 8000696: 6c1b ldr r3, [r3, #64] @ 0x40
+ 8000698: 4a27 ldr r2, [pc, #156] @ (8000738 )
+ 800069a: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000
+ 800069e: 6413 str r3, [r2, #64] @ 0x40
+ 80006a0: 4b25 ldr r3, [pc, #148] @ (8000738 )
+ 80006a2: 6c1b ldr r3, [r3, #64] @ 0x40
+ 80006a4: f003 5380 and.w r3, r3, #268435456 @ 0x10000000
+ 80006a8: 60bb str r3, [r7, #8]
+ 80006aa: 68bb ldr r3, [r7, #8]
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
- 8000608: 2300 movs r3, #0
- 800060a: 607b str r3, [r7, #4]
- 800060c: 4b22 ldr r3, [pc, #136] @ (8000698 )
- 800060e: 681b ldr r3, [r3, #0]
- 8000610: f423 4340 bic.w r3, r3, #49152 @ 0xc000
- 8000614: 4a20 ldr r2, [pc, #128] @ (8000698 )
- 8000616: f443 4380 orr.w r3, r3, #16384 @ 0x4000
- 800061a: 6013 str r3, [r2, #0]
- 800061c: 4b1e ldr r3, [pc, #120] @ (8000698 )
- 800061e: 681b ldr r3, [r3, #0]
- 8000620: f403 4340 and.w r3, r3, #49152 @ 0xc000
- 8000624: 607b str r3, [r7, #4]
- 8000626: 687b ldr r3, [r7, #4]
+ 80006ac: 2300 movs r3, #0
+ 80006ae: 607b str r3, [r7, #4]
+ 80006b0: 4b22 ldr r3, [pc, #136] @ (800073c )
+ 80006b2: 681b ldr r3, [r3, #0]
+ 80006b4: f423 4340 bic.w r3, r3, #49152 @ 0xc000
+ 80006b8: 4a20 ldr r2, [pc, #128] @ (800073c )
+ 80006ba: f443 4380 orr.w r3, r3, #16384 @ 0x4000
+ 80006be: 6013 str r3, [r2, #0]
+ 80006c0: 4b1e ldr r3, [pc, #120] @ (800073c )
+ 80006c2: 681b ldr r3, [r3, #0]
+ 80006c4: f403 4340 and.w r3, r3, #49152 @ 0xc000
+ 80006c8: 607b str r3, [r7, #4]
+ 80006ca: 687b ldr r3, [r7, #4]
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
- 8000628: 2301 movs r3, #1
- 800062a: 623b str r3, [r7, #32]
+ 80006cc: 2301 movs r3, #1
+ 80006ce: 623b str r3, [r7, #32]
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
- 800062c: f44f 3380 mov.w r3, #65536 @ 0x10000
- 8000630: 627b str r3, [r7, #36] @ 0x24
+ 80006d0: f44f 3380 mov.w r3, #65536 @ 0x10000
+ 80006d4: 627b str r3, [r7, #36] @ 0x24
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
- 8000632: 2302 movs r3, #2
- 8000634: 63bb str r3, [r7, #56] @ 0x38
+ 80006d6: 2302 movs r3, #2
+ 80006d8: 63bb str r3, [r7, #56] @ 0x38
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
- 8000636: f44f 0380 mov.w r3, #4194304 @ 0x400000
- 800063a: 63fb str r3, [r7, #60] @ 0x3c
+ 80006da: f44f 0380 mov.w r3, #4194304 @ 0x400000
+ 80006de: 63fb str r3, [r7, #60] @ 0x3c
RCC_OscInitStruct.PLL.PLLM = 4;
- 800063c: 2304 movs r3, #4
- 800063e: 643b str r3, [r7, #64] @ 0x40
+ 80006e0: 2304 movs r3, #4
+ 80006e2: 643b str r3, [r7, #64] @ 0x40
RCC_OscInitStruct.PLL.PLLN = 72;
- 8000640: 2348 movs r3, #72 @ 0x48
- 8000642: 647b str r3, [r7, #68] @ 0x44
+ 80006e4: 2348 movs r3, #72 @ 0x48
+ 80006e6: 647b str r3, [r7, #68] @ 0x44
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
- 8000644: 2302 movs r3, #2
- 8000646: 64bb str r3, [r7, #72] @ 0x48
+ 80006e8: 2302 movs r3, #2
+ 80006ea: 64bb str r3, [r7, #72] @ 0x48
RCC_OscInitStruct.PLL.PLLQ = 3;
- 8000648: 2303 movs r3, #3
- 800064a: 64fb str r3, [r7, #76] @ 0x4c
+ 80006ec: 2303 movs r3, #3
+ 80006ee: 64fb str r3, [r7, #76] @ 0x4c
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
- 800064c: f107 0320 add.w r3, r7, #32
- 8000650: 4618 mov r0, r3
- 8000652: f003 ff65 bl 8004520
- 8000656: 4603 mov r3, r0
- 8000658: 2b00 cmp r3, #0
- 800065a: d001 beq.n 8000660
+ 80006f0: f107 0320 add.w r3, r7, #32
+ 80006f4: 4618 mov r0, r3
+ 80006f6: f003 ff41 bl 800457c
+ 80006fa: 4603 mov r3, r0
+ 80006fc: 2b00 cmp r3, #0
+ 80006fe: d001 beq.n 8000704
{
Error_Handler();
- 800065c: f000 fb5a bl 8000d14
+ 8000700: f000 fb5a bl 8000db8
}
/** Initializes the CPU, AHB and APB buses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
- 8000660: 230f movs r3, #15
- 8000662: 60fb str r3, [r7, #12]
+ 8000704: 230f movs r3, #15
+ 8000706: 60fb str r3, [r7, #12]
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
- 8000664: 2302 movs r3, #2
- 8000666: 613b str r3, [r7, #16]
+ 8000708: 2302 movs r3, #2
+ 800070a: 613b str r3, [r7, #16]
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
- 8000668: 2300 movs r3, #0
- 800066a: 617b str r3, [r7, #20]
+ 800070c: 2300 movs r3, #0
+ 800070e: 617b str r3, [r7, #20]
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
- 800066c: f44f 5380 mov.w r3, #4096 @ 0x1000
- 8000670: 61bb str r3, [r7, #24]
+ 8000710: f44f 5380 mov.w r3, #4096 @ 0x1000
+ 8000714: 61bb str r3, [r7, #24]
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
- 8000672: 2300 movs r3, #0
- 8000674: 61fb str r3, [r7, #28]
+ 8000716: 2300 movs r3, #0
+ 8000718: 61fb str r3, [r7, #28]
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
- 8000676: f107 030c add.w r3, r7, #12
- 800067a: 2102 movs r1, #2
- 800067c: 4618 mov r0, r3
- 800067e: f004 f9c7 bl 8004a10
- 8000682: 4603 mov r3, r0
- 8000684: 2b00 cmp r3, #0
- 8000686: d001 beq.n 800068c
+ 800071a: f107 030c add.w r3, r7, #12
+ 800071e: 2102 movs r1, #2
+ 8000720: 4618 mov r0, r3
+ 8000722: f004 f9a3 bl 8004a6c
+ 8000726: 4603 mov r3, r0
+ 8000728: 2b00 cmp r3, #0
+ 800072a: d001 beq.n 8000730
{
Error_Handler();
- 8000688: f000 fb44 bl 8000d14
+ 800072c: f000 fb44 bl 8000db8
}
}
- 800068c: bf00 nop
- 800068e: 3750 adds r7, #80 @ 0x50
- 8000690: 46bd mov sp, r7
- 8000692: bd80 pop {r7, pc}
- 8000694: 40023800 .word 0x40023800
- 8000698: 40007000 .word 0x40007000
+ 8000730: bf00 nop
+ 8000732: 3750 adds r7, #80 @ 0x50
+ 8000734: 46bd mov sp, r7
+ 8000736: bd80 pop {r7, pc}
+ 8000738: 40023800 .word 0x40023800
+ 800073c: 40007000 .word 0x40007000
-0800069c :
+08000740 :
* @brief CRC Initialization Function
* @param None
* @retval None
*/
static void MX_CRC_Init(void)
{
- 800069c: b580 push {r7, lr}
- 800069e: af00 add r7, sp, #0
+ 8000740: b580 push {r7, lr}
+ 8000742: af00 add r7, sp, #0
/* USER CODE END CRC_Init 0 */
/* USER CODE BEGIN CRC_Init 1 */
/* USER CODE END CRC_Init 1 */
hcrc.Instance = CRC;
- 80006a0: 4b06 ldr r3, [pc, #24] @ (80006bc )
- 80006a2: 4a07 ldr r2, [pc, #28] @ (80006c0 )
- 80006a4: 601a str r2, [r3, #0]
+ 8000744: 4b06 ldr r3, [pc, #24] @ (8000760 )
+ 8000746: 4a07 ldr r2, [pc, #28] @ (8000764 )
+ 8000748: 601a str r2, [r3, #0]
if (HAL_CRC_Init(&hcrc) != HAL_OK)
- 80006a6: 4805 ldr r0, [pc, #20] @ (80006bc )
- 80006a8: f001 f8dc bl 8001864
- 80006ac: 4603 mov r3, r0
- 80006ae: 2b00 cmp r3, #0
- 80006b0: d001 beq.n 80006b6
+ 800074a: 4805 ldr r0, [pc, #20] @ (8000760 )
+ 800074c: f001 f8b8 bl 80018c0
+ 8000750: 4603 mov r3, r0
+ 8000752: 2b00 cmp r3, #0
+ 8000754: d001 beq.n 800075a
{
Error_Handler();
- 80006b2: f000 fb2f bl 8000d14
+ 8000756: f000 fb2f bl 8000db8
}
/* USER CODE BEGIN CRC_Init 2 */
/* USER CODE END CRC_Init 2 */
}
- 80006b6: bf00 nop
- 80006b8: bd80 pop {r7, pc}
- 80006ba: bf00 nop
- 80006bc: 2000002c .word 0x2000002c
- 80006c0: 40023000 .word 0x40023000
+ 800075a: bf00 nop
+ 800075c: bd80 pop {r7, pc}
+ 800075e: bf00 nop
+ 8000760: 20000038 .word 0x20000038
+ 8000764: 40023000 .word 0x40023000
-080006c4 :
+08000768 :
* @brief DMA2D Initialization Function
* @param None
* @retval None
*/
static void MX_DMA2D_Init(void)
{
- 80006c4: b580 push {r7, lr}
- 80006c6: af00 add r7, sp, #0
+ 8000768: b580 push {r7, lr}
+ 800076a: af00 add r7, sp, #0
/* USER CODE END DMA2D_Init 0 */
/* USER CODE BEGIN DMA2D_Init 1 */
/* USER CODE END DMA2D_Init 1 */
hdma2d.Instance = DMA2D;
- 80006c8: 4b15 ldr r3, [pc, #84] @ (8000720 )
- 80006ca: 4a16 ldr r2, [pc, #88] @ (8000724 )
- 80006cc: 601a str r2, [r3, #0]
+ 800076c: 4b15 ldr r3, [pc, #84] @ (80007c4 )
+ 800076e: 4a16 ldr r2, [pc, #88] @ (80007c8 )
+ 8000770: 601a str r2, [r3, #0]
hdma2d.Init.Mode = DMA2D_M2M;
- 80006ce: 4b14 ldr r3, [pc, #80] @ (8000720 )
- 80006d0: 2200 movs r2, #0
- 80006d2: 605a str r2, [r3, #4]
+ 8000772: 4b14 ldr r3, [pc, #80] @ (80007c4 )
+ 8000774: 2200 movs r2, #0
+ 8000776: 605a str r2, [r3, #4]
hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;
- 80006d4: 4b12 ldr r3, [pc, #72] @ (8000720 )
- 80006d6: 2200 movs r2, #0
- 80006d8: 609a str r2, [r3, #8]
+ 8000778: 4b12 ldr r3, [pc, #72] @ (80007c4 )
+ 800077a: 2200 movs r2, #0
+ 800077c: 609a str r2, [r3, #8]
hdma2d.Init.OutputOffset = 0;
- 80006da: 4b11 ldr r3, [pc, #68] @ (8000720 )
- 80006dc: 2200 movs r2, #0
- 80006de: 60da str r2, [r3, #12]
+ 800077e: 4b11 ldr r3, [pc, #68] @ (80007c4 )
+ 8000780: 2200 movs r2, #0
+ 8000782: 60da str r2, [r3, #12]
hdma2d.LayerCfg[1].InputOffset = 0;
- 80006e0: 4b0f ldr r3, [pc, #60] @ (8000720 )
- 80006e2: 2200 movs r2, #0
- 80006e4: 629a str r2, [r3, #40] @ 0x28
+ 8000784: 4b0f ldr r3, [pc, #60] @ (80007c4 )
+ 8000786: 2200 movs r2, #0
+ 8000788: 629a str r2, [r3, #40] @ 0x28
hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888;
- 80006e6: 4b0e ldr r3, [pc, #56] @ (8000720 )
- 80006e8: 2200 movs r2, #0
- 80006ea: 62da str r2, [r3, #44] @ 0x2c
+ 800078a: 4b0e ldr r3, [pc, #56] @ (80007c4 )
+ 800078c: 2200 movs r2, #0
+ 800078e: 62da str r2, [r3, #44] @ 0x2c
hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
- 80006ec: 4b0c ldr r3, [pc, #48] @ (8000720 )
- 80006ee: 2200 movs r2, #0
- 80006f0: 631a str r2, [r3, #48] @ 0x30
+ 8000790: 4b0c ldr r3, [pc, #48] @ (80007c4 )
+ 8000792: 2200 movs r2, #0
+ 8000794: 631a str r2, [r3, #48] @ 0x30
hdma2d.LayerCfg[1].InputAlpha = 0;
- 80006f2: 4b0b ldr r3, [pc, #44] @ (8000720 )
- 80006f4: 2200 movs r2, #0
- 80006f6: 635a str r2, [r3, #52] @ 0x34
+ 8000796: 4b0b ldr r3, [pc, #44] @ (80007c4 )
+ 8000798: 2200 movs r2, #0
+ 800079a: 635a str r2, [r3, #52] @ 0x34
if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
- 80006f8: 4809 ldr r0, [pc, #36] @ (8000720 )
- 80006fa: f001 f8cf bl 800189c
- 80006fe: 4603 mov r3, r0
- 8000700: 2b00 cmp r3, #0
- 8000702: d001 beq.n 8000708
+ 800079c: 4809 ldr r0, [pc, #36] @ (80007c4 )
+ 800079e: f001 f8ab bl 80018f8
+ 80007a2: 4603 mov r3, r0
+ 80007a4: 2b00 cmp r3, #0
+ 80007a6: d001 beq.n 80007ac
{
Error_Handler();
- 8000704: f000 fb06 bl 8000d14
+ 80007a8: f000 fb06 bl 8000db8
}
if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
- 8000708: 2101 movs r1, #1
- 800070a: 4805 ldr r0, [pc, #20] @ (8000720 )
- 800070c: f001 fa20 bl 8001b50
- 8000710: 4603 mov r3, r0
- 8000712: 2b00 cmp r3, #0
- 8000714: d001 beq.n 800071a
+ 80007ac: 2101 movs r1, #1
+ 80007ae: 4805 ldr r0, [pc, #20] @ (80007c4 )
+ 80007b0: f001 f9fc bl 8001bac
+ 80007b4: 4603 mov r3, r0
+ 80007b6: 2b00 cmp r3, #0
+ 80007b8: d001 beq.n 80007be
{
Error_Handler();
- 8000716: f000 fafd bl 8000d14
+ 80007ba: f000 fafd bl 8000db8
}
/* USER CODE BEGIN DMA2D_Init 2 */
/* USER CODE END DMA2D_Init 2 */
}
- 800071a: bf00 nop
- 800071c: bd80 pop {r7, pc}
- 800071e: bf00 nop
- 8000720: 20000034 .word 0x20000034
- 8000724: 4002b000 .word 0x4002b000
+ 80007be: bf00 nop
+ 80007c0: bd80 pop {r7, pc}
+ 80007c2: bf00 nop
+ 80007c4: 20000040 .word 0x20000040
+ 80007c8: 4002b000 .word 0x4002b000
-08000728 :
+080007cc :
* @brief I2C3 Initialization Function
* @param None
* @retval None
*/
static void MX_I2C3_Init(void)
{
- 8000728: b580 push {r7, lr}
- 800072a: af00 add r7, sp, #0
+ 80007cc: b580 push {r7, lr}
+ 80007ce: af00 add r7, sp, #0
/* USER CODE END I2C3_Init 0 */
/* USER CODE BEGIN I2C3_Init 1 */
/* USER CODE END I2C3_Init 1 */
hi2c3.Instance = I2C3;
- 800072c: 4b1b ldr r3, [pc, #108] @ (800079c )
- 800072e: 4a1c ldr r2, [pc, #112] @ (80007a0 )
- 8000730: 601a str r2, [r3, #0]
+ 80007d0: 4b1b ldr r3, [pc, #108] @ (8000840 )
+ 80007d2: 4a1c ldr r2, [pc, #112] @ (8000844 )
+ 80007d4: 601a str r2, [r3, #0]
hi2c3.Init.ClockSpeed = 100000;
- 8000732: 4b1a ldr r3, [pc, #104] @ (800079c )
- 8000734: 4a1b ldr r2, [pc, #108] @ (80007a4 )
- 8000736: 605a str r2, [r3, #4]
+ 80007d6: 4b1a ldr r3, [pc, #104] @ (8000840 )
+ 80007d8: 4a1b ldr r2, [pc, #108] @ (8000848 )
+ 80007da: 605a str r2, [r3, #4]
hi2c3.Init.DutyCycle = I2C_DUTYCYCLE_2;
- 8000738: 4b18 ldr r3, [pc, #96] @ (800079c )
- 800073a: 2200 movs r2, #0
- 800073c: 609a str r2, [r3, #8]
+ 80007dc: 4b18 ldr r3, [pc, #96] @ (8000840 )
+ 80007de: 2200 movs r2, #0
+ 80007e0: 609a str r2, [r3, #8]
hi2c3.Init.OwnAddress1 = 0;
- 800073e: 4b17 ldr r3, [pc, #92] @ (800079c )
- 8000740: 2200 movs r2, #0
- 8000742: 60da str r2, [r3, #12]
+ 80007e2: 4b17 ldr r3, [pc, #92] @ (8000840 )
+ 80007e4: 2200 movs r2, #0
+ 80007e6: 60da str r2, [r3, #12]
hi2c3.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
- 8000744: 4b15 ldr r3, [pc, #84] @ (800079c )
- 8000746: f44f 4280 mov.w r2, #16384 @ 0x4000
- 800074a: 611a str r2, [r3, #16]
+ 80007e8: 4b15 ldr r3, [pc, #84] @ (8000840 )
+ 80007ea: f44f 4280 mov.w r2, #16384 @ 0x4000
+ 80007ee: 611a str r2, [r3, #16]
hi2c3.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
- 800074c: 4b13 ldr r3, [pc, #76] @ (800079c )
- 800074e: 2200 movs r2, #0
- 8000750: 615a str r2, [r3, #20]
+ 80007f0: 4b13 ldr r3, [pc, #76] @ (8000840 )
+ 80007f2: 2200 movs r2, #0
+ 80007f4: 615a str r2, [r3, #20]
hi2c3.Init.OwnAddress2 = 0;
- 8000752: 4b12 ldr r3, [pc, #72] @ (800079c )
- 8000754: 2200 movs r2, #0
- 8000756: 619a str r2, [r3, #24]
+ 80007f6: 4b12 ldr r3, [pc, #72] @ (8000840 )
+ 80007f8: 2200 movs r2, #0
+ 80007fa: 619a str r2, [r3, #24]
hi2c3.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
- 8000758: 4b10 ldr r3, [pc, #64] @ (800079c )
- 800075a: 2200 movs r2, #0
- 800075c: 61da str r2, [r3, #28]
+ 80007fc: 4b10 ldr r3, [pc, #64] @ (8000840 )
+ 80007fe: 2200 movs r2, #0
+ 8000800: 61da str r2, [r3, #28]
hi2c3.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
- 800075e: 4b0f ldr r3, [pc, #60] @ (800079c )
- 8000760: 2200 movs r2, #0
- 8000762: 621a str r2, [r3, #32]
+ 8000802: 4b0f ldr r3, [pc, #60] @ (8000840 )
+ 8000804: 2200 movs r2, #0
+ 8000806: 621a str r2, [r3, #32]
if (HAL_I2C_Init(&hi2c3) != HAL_OK)
- 8000764: 480d ldr r0, [pc, #52] @ (800079c )
- 8000766: f003 fa0b bl 8003b80
- 800076a: 4603 mov r3, r0
- 800076c: 2b00 cmp r3, #0
- 800076e: d001 beq.n 8000774
+ 8000808: 480d ldr r0, [pc, #52] @ (8000840 )
+ 800080a: f003 f9e7 bl 8003bdc
+ 800080e: 4603 mov r3, r0
+ 8000810: 2b00 cmp r3, #0
+ 8000812: d001 beq.n 8000818
{
Error_Handler();
- 8000770: f000 fad0 bl 8000d14
+ 8000814: f000 fad0 bl 8000db8
}
/** Configure Analogue filter
*/
if (HAL_I2CEx_ConfigAnalogFilter(&hi2c3, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
- 8000774: 2100 movs r1, #0
- 8000776: 4809 ldr r0, [pc, #36] @ (800079c )
- 8000778: f003 fb46 bl 8003e08
- 800077c: 4603 mov r3, r0
- 800077e: 2b00 cmp r3, #0
- 8000780: d001 beq.n 8000786
+ 8000818: 2100 movs r1, #0
+ 800081a: 4809 ldr r0, [pc, #36] @ (8000840 )
+ 800081c: f003 fb22 bl 8003e64
+ 8000820: 4603 mov r3, r0
+ 8000822: 2b00 cmp r3, #0
+ 8000824: d001 beq.n 800082a
{
Error_Handler();
- 8000782: f000 fac7 bl 8000d14
+ 8000826: f000 fac7 bl 8000db8
}
/** Configure Digital filter
*/
if (HAL_I2CEx_ConfigDigitalFilter(&hi2c3, 0) != HAL_OK)
- 8000786: 2100 movs r1, #0
- 8000788: 4804 ldr r0, [pc, #16] @ (800079c )
- 800078a: f003 fb79 bl 8003e80
- 800078e: 4603 mov r3, r0
- 8000790: 2b00 cmp r3, #0
- 8000792: d001 beq.n 8000798
+ 800082a: 2100 movs r1, #0
+ 800082c: 4804 ldr r0, [pc, #16] @ (8000840 )
+ 800082e: f003 fb55 bl 8003edc
+ 8000832: 4603 mov r3, r0
+ 8000834: 2b00 cmp r3, #0
+ 8000836: d001 beq.n 800083c
{
Error_Handler();
- 8000794: f000 fabe bl 8000d14
+ 8000838: f000 fabe bl 8000db8
}
/* USER CODE BEGIN I2C3_Init 2 */
/* USER CODE END I2C3_Init 2 */
}
- 8000798: bf00 nop
- 800079a: bd80 pop {r7, pc}
- 800079c: 20000074 .word 0x20000074
- 80007a0: 40005c00 .word 0x40005c00
- 80007a4: 000186a0 .word 0x000186a0
+ 800083c: bf00 nop
+ 800083e: bd80 pop {r7, pc}
+ 8000840: 20000080 .word 0x20000080
+ 8000844: 40005c00 .word 0x40005c00
+ 8000848: 000186a0 .word 0x000186a0
-080007a8 :
+0800084c :
* @brief LTDC Initialization Function
* @param None
* @retval None
*/
static void MX_LTDC_Init(void)
{
- 80007a8: b580 push {r7, lr}
- 80007aa: b08e sub sp, #56 @ 0x38
- 80007ac: af00 add r7, sp, #0
+ 800084c: b580 push {r7, lr}
+ 800084e: b08e sub sp, #56 @ 0x38
+ 8000850: af00 add r7, sp, #0
/* USER CODE BEGIN LTDC_Init 0 */
/* USER CODE END LTDC_Init 0 */
LTDC_LayerCfgTypeDef pLayerCfg = {0};
- 80007ae: 1d3b adds r3, r7, #4
- 80007b0: 2234 movs r2, #52 @ 0x34
- 80007b2: 2100 movs r1, #0
- 80007b4: 4618 mov r0, r3
- 80007b6: f007 fb6b bl 8007e90
+ 8000852: 1d3b adds r3, r7, #4
+ 8000854: 2234 movs r2, #52 @ 0x34
+ 8000856: 2100 movs r1, #0
+ 8000858: 4618 mov r0, r3
+ 800085a: f007 fb41 bl 8007ee0
/* USER CODE BEGIN LTDC_Init 1 */
/* USER CODE END LTDC_Init 1 */
hltdc.Instance = LTDC;
- 80007ba: 4b39 ldr r3, [pc, #228] @ (80008a0 )
- 80007bc: 4a39 ldr r2, [pc, #228] @ (80008a4 )
- 80007be: 601a str r2, [r3, #0]
+ 800085e: 4b39 ldr r3, [pc, #228] @ (8000944 )
+ 8000860: 4a39 ldr r2, [pc, #228] @ (8000948 )
+ 8000862: 601a str r2, [r3, #0]
hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
- 80007c0: 4b37 ldr r3, [pc, #220] @ (80008a0 )
- 80007c2: 2200 movs r2, #0
- 80007c4: 605a str r2, [r3, #4]
+ 8000864: 4b37 ldr r3, [pc, #220] @ (8000944 )
+ 8000866: 2200 movs r2, #0
+ 8000868: 605a str r2, [r3, #4]
hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
- 80007c6: 4b36 ldr r3, [pc, #216] @ (80008a0 )
- 80007c8: 2200 movs r2, #0
- 80007ca: 609a str r2, [r3, #8]
+ 800086a: 4b36 ldr r3, [pc, #216] @ (8000944 )
+ 800086c: 2200 movs r2, #0
+ 800086e: 609a str r2, [r3, #8]
hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
- 80007cc: 4b34 ldr r3, [pc, #208] @ (80008a0 )
- 80007ce: 2200 movs r2, #0
- 80007d0: 60da str r2, [r3, #12]
+ 8000870: 4b34 ldr r3, [pc, #208] @ (8000944 )
+ 8000872: 2200 movs r2, #0
+ 8000874: 60da str r2, [r3, #12]
hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
- 80007d2: 4b33 ldr r3, [pc, #204] @ (80008a0 )
- 80007d4: 2200 movs r2, #0
- 80007d6: 611a str r2, [r3, #16]
+ 8000876: 4b33 ldr r3, [pc, #204] @ (8000944 )
+ 8000878: 2200 movs r2, #0
+ 800087a: 611a str r2, [r3, #16]
hltdc.Init.HorizontalSync = 9;
- 80007d8: 4b31 ldr r3, [pc, #196] @ (80008a0 )
- 80007da: 2209 movs r2, #9
- 80007dc: 615a str r2, [r3, #20]
+ 800087c: 4b31 ldr r3, [pc, #196] @ (8000944 )
+ 800087e: 2209 movs r2, #9
+ 8000880: 615a str r2, [r3, #20]
hltdc.Init.VerticalSync = 1;
- 80007de: 4b30 ldr r3, [pc, #192] @ (80008a0 )
- 80007e0: 2201 movs r2, #1
- 80007e2: 619a str r2, [r3, #24]
+ 8000882: 4b30 ldr r3, [pc, #192] @ (8000944 )
+ 8000884: 2201 movs r2, #1
+ 8000886: 619a str r2, [r3, #24]
hltdc.Init.AccumulatedHBP = 29;
- 80007e4: 4b2e ldr r3, [pc, #184] @ (80008a0 )
- 80007e6: 221d movs r2, #29
- 80007e8: 61da str r2, [r3, #28]
+ 8000888: 4b2e ldr r3, [pc, #184] @ (8000944 )
+ 800088a: 221d movs r2, #29
+ 800088c: 61da str r2, [r3, #28]
hltdc.Init.AccumulatedVBP = 3;
- 80007ea: 4b2d ldr r3, [pc, #180] @ (80008a0 )
- 80007ec: 2203 movs r2, #3
- 80007ee: 621a str r2, [r3, #32]
+ 800088e: 4b2d ldr r3, [pc, #180] @ (8000944 )
+ 8000890: 2203 movs r2, #3
+ 8000892: 621a str r2, [r3, #32]
hltdc.Init.AccumulatedActiveW = 269;
- 80007f0: 4b2b ldr r3, [pc, #172] @ (80008a0 )
- 80007f2: f240 120d movw r2, #269 @ 0x10d
- 80007f6: 625a str r2, [r3, #36] @ 0x24
+ 8000894: 4b2b ldr r3, [pc, #172] @ (8000944