From 6e10569c4776fd337528cf6e99867ddd64d7f04a Mon Sep 17 00:00:00 2001 From: KwakJooYoung Date: Wed, 17 Dec 2025 15:34:38 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B4=88=EA=B8=B0=20=EC=BB=A4=EB=B0=8B.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ComClass1.vb | 23 + FW_Multi_Downloader.sln | 31 + FW_Multi_Downloader.vbproj | 248 + FlashLoader/Conf/Default.conf | 98 + FlashLoader/Doc/UM0516.pdf | Bin 0 -> 223437 bytes FlashLoader/Files.dll | Bin 0 -> 50688 bytes FlashLoader/MB786.bat | 7 + ...MCD-ST Liberty SW License Agreement V2.pdf | Bin 0 -> 17797 bytes FlashLoader/Map/STM32F0_3x_16K.STmap | 153 + FlashLoader/Map/STM32F0_3x_32K.STmap | 265 + FlashLoader/Map/STM32F0_4x_16K.STmap | 153 + FlashLoader/Map/STM32F0_4x_32K.STmap | 265 + FlashLoader/Map/STM32F0_5x_3x_16K.STmap | 151 + FlashLoader/Map/STM32F0_5x_3x_32K.STmap | 267 + FlashLoader/Map/STM32F0_5x_3x_64K.STmap | 490 + FlashLoader/Map/STM32F0_7x_128K.STmap | 489 + FlashLoader/Map/STM32F0_7x_64K.STmap | 265 + FlashLoader/Map/STM32F0_9x_256K.STmap | 937 + .../Map/STM32F1_Connectivity-line_128K.STmap | 475 + .../Map/STM32F1_Connectivity-line_256K.STmap | 922 + .../Map/STM32F1_Connectivity-line_64K.STmap | 250 + .../Map/STM32F1_High-density-value_256K.STmap | 924 + .../Map/STM32F1_High-density-value_384K.STmap | 1370 ++ .../Map/STM32F1_High-density-value_512K.STmap | 1819 ++ .../Map/STM32F1_High-density_256K.STmap | 923 + .../Map/STM32F1_High-density_384K.STmap | 1370 ++ .../Map/STM32F1_High-density_512K.STmap | 1818 ++ .../Map/STM32F1_Low-density-value_16K.STmap | 138 + .../Map/STM32F1_Low-density-value_32K.STmap | 250 + FlashLoader/Map/STM32F1_Low-density_16K.STmap | 140 + FlashLoader/Map/STM32F1_Low-density_32K.STmap | 250 + .../Map/STM32F1_Med-density-value_128K.STmap | 923 + .../Map/STM32F1_Med-density-value_64K.STmap | 475 + .../Map/STM32F1_Med-density_128K.STmap | 922 + FlashLoader/Map/STM32F1_Med-density_64K.STmap | 474 + .../Map/STM32F1_XL-density_1024K.STmap | 3611 ++++ FlashLoader/Map/STM32F1_XL-density_768K.STmap | 5403 ++++++ FlashLoader/Map/STM32F2_1024K.STmap | 111 + FlashLoader/Map/STM32F2_128K.STmap | 62 + FlashLoader/Map/STM32F2_256K.STmap | 69 + FlashLoader/Map/STM32F2_512K.STmap | 83 + FlashLoader/Map/STM32F2_768K.STmap | 97 + FlashLoader/Map/STM32F3_02_01_64K.STmap | 261 + FlashLoader/Map/STM32F3_03_02_256K.STmap | 935 + FlashLoader/Map/STM32F3_03_02_512K.STmap | 1832 ++ FlashLoader/Map/STM32F3_34_03_64K.STmap | 261 + FlashLoader/Map/STM32F3_7x_8x_256K.STmap | 935 + FlashLoader/Map/STM32F4_01_256K.STmap | 81 + FlashLoader/Map/STM32F4_01_512K.STmap | 94 + .../Map/STM32F4_05_07_15_17_1024K.STmap | 123 + FlashLoader/Map/STM32F4_10_128K.STmap | 73 + FlashLoader/Map/STM32F4_11_512K.STmap | 94 + FlashLoader/Map/STM32F4_12_1024K.STmap | 123 + .../Map/STM32F4_27_37_29_39_2048K.STmap | 215 + FlashLoader/Map/STM32F4_46_512K.STmap | 96 + FlashLoader/Map/STM32F4_69_79_2048K.STmap | 215 + FlashLoader/Map/STM32F7_4x_5x_1024K.STmap | 95 + FlashLoader/Map/STM32L0_x3_x2_x1_192K.STmap | 10798 ++++++++++++ FlashLoader/Map/STM32L0_x3_x2_x1_64K.STmap | 3632 ++++ FlashLoader/Map/STM32L1_Cat1-128K.STmap | 3632 ++++ FlashLoader/Map/STM32L1_Cat1-32K.STmap | 944 + FlashLoader/Map/STM32L1_Cat1-64K.STmap | 1840 ++ FlashLoader/Map/STM32L1_Cat2-128K.STmap | 3632 ++++ FlashLoader/Map/STM32L1_Cat2-32K.STmap | 944 + FlashLoader/Map/STM32L1_Cat2-64K.STmap | 1840 ++ FlashLoader/Map/STM32L1_Cat3-256K.STmap | 7213 ++++++++ FlashLoader/Map/STM32L1_Cat4-256K.STmap | 7222 ++++++++ FlashLoader/Map/STM32L1_Cat4-384K.STmap | 10813 ++++++++++++ FlashLoader/Map/STM32L1_Cat5-512K.STmap | 14396 ++++++++++++++++ FlashLoader/Map/STM32L4x_6_1024K.STmap | 3630 ++++ FlashLoader/Map/STM8L_16K.STmap | 162 + FlashLoader/Map/STM8L_32K.STmap | 274 + FlashLoader/Map/STM8L_64K.STmap | 506 + FlashLoader/Map/STM8L_8K.STmap | 105 + FlashLoader/Map/STM8_128K.STmap | 956 + FlashLoader/Map/STM8_16K.STmap | 161 + FlashLoader/Map/STM8_256K.STmap | 953 + FlashLoader/Map/STM8_32K.STmap | 275 + FlashLoader/Map/STM8_64K.STmap | 508 + FlashLoader/Map/STR750F.STmap | 104 + FlashLoader/Map/STR91xFA.STmap | 250 + FlashLoader/Map/STR91xFAWy2.STmap | 55 + FlashLoader/Map/STR91xFAWy4.STmap | 81 + FlashLoader/Map/STR91xFAWy6.STmap | 138 + FlashLoader/Map/STR91xFAWy7.STmap | 250 + FlashLoader/STBLLIB.dll | Bin 0 -> 99840 bytes .../E_W_ROUTINEs_128K_ver_2.0.s19 | 19 + .../E_W_ROUTINEs_128K_ver_2.1.s19 | 24 + .../E_W_ROUTINEs_128K_ver_2.2.s19 | 12 + .../E_W_ROUTINEs_128K_ver_2.4.s19 | 12 + .../E_W_ROUTINEs_256K_ver_1.0.s19 | 22 + .../E_W_ROUTINEs_32K_verL_1.0.s19 | 0 .../E_W_ROUTINEs_32K_ver_1.0.s19 | 16 + .../E_W_ROUTINEs_32K_ver_1.2.s19 | 21 + .../E_W_ROUTINEs_32K_ver_1.3.s19 | 21 + .../E_W_ROUTINEs_32K_ver_1.4.s19 | 20 + .../E_W_ROUTINEs_8K_verL_1.0.s19 | 2 + FlashLoader/STMFlashLoader Demo.exe | Bin 0 -> 499200 bytes FlashLoader/STMFlashLoader.exe | Bin 0 -> 41472 bytes FlashLoader/STUARTBLLIB.dll | Bin 0 -> 107008 bytes FlashLoader/readme.txt | 35 + FlashLoader/version.txt | 312 + JOMT 아이콘.ico | Bin 0 -> 119078 bytes MainForm.Designer.vb | 2176 +++ MainForm.resx | 2125 +++ MainForm.vb | 627 + Module.vb | 3 + My Project/Application.Designer.vb | 44 + My Project/Application.myapp | 12 + My Project/AssemblyInfo.vb | 35 + My Project/Resources.Designer.vb | 93 + My Project/Resources.resx | 130 + My Project/Settings.Designer.vb | 115 + My Project/Settings.settings | 18 + My Project/app.manifest | 48 + README.md | 162 + Resources/STMFlashLoader.exe | Bin 0 -> 41472 bytes Resources/logo.png | Bin 0 -> 2129 bytes .../프로페셔널-페이스-거치대.png | Bin 0 -> 3411509 bytes Thumbs.db | Bin 0 -> 7168 bytes app.config | 64 + docs/aging_main.png | Bin 0 -> 84979 bytes docs/aging_start.png | Bin 0 -> 73956 bytes packages.config | 21 + 124 files changed, 113657 insertions(+) create mode 100644 ComClass1.vb create mode 100644 FW_Multi_Downloader.sln create mode 100644 FW_Multi_Downloader.vbproj create mode 100644 FlashLoader/Conf/Default.conf create mode 100644 FlashLoader/Doc/UM0516.pdf create mode 100644 FlashLoader/Files.dll create mode 100644 FlashLoader/MB786.bat create mode 100644 FlashLoader/MCD-ST Liberty SW License Agreement V2.pdf create mode 100644 FlashLoader/Map/STM32F0_3x_16K.STmap create mode 100644 FlashLoader/Map/STM32F0_3x_32K.STmap create mode 100644 FlashLoader/Map/STM32F0_4x_16K.STmap create mode 100644 FlashLoader/Map/STM32F0_4x_32K.STmap create mode 100644 FlashLoader/Map/STM32F0_5x_3x_16K.STmap create mode 100644 FlashLoader/Map/STM32F0_5x_3x_32K.STmap create mode 100644 FlashLoader/Map/STM32F0_5x_3x_64K.STmap create mode 100644 FlashLoader/Map/STM32F0_7x_128K.STmap create mode 100644 FlashLoader/Map/STM32F0_7x_64K.STmap create mode 100644 FlashLoader/Map/STM32F0_9x_256K.STmap create mode 100644 FlashLoader/Map/STM32F1_Connectivity-line_128K.STmap create mode 100644 FlashLoader/Map/STM32F1_Connectivity-line_256K.STmap create mode 100644 FlashLoader/Map/STM32F1_Connectivity-line_64K.STmap create mode 100644 FlashLoader/Map/STM32F1_High-density-value_256K.STmap create mode 100644 FlashLoader/Map/STM32F1_High-density-value_384K.STmap create mode 100644 FlashLoader/Map/STM32F1_High-density-value_512K.STmap create mode 100644 FlashLoader/Map/STM32F1_High-density_256K.STmap create mode 100644 FlashLoader/Map/STM32F1_High-density_384K.STmap create mode 100644 FlashLoader/Map/STM32F1_High-density_512K.STmap create mode 100644 FlashLoader/Map/STM32F1_Low-density-value_16K.STmap create mode 100644 FlashLoader/Map/STM32F1_Low-density-value_32K.STmap create mode 100644 FlashLoader/Map/STM32F1_Low-density_16K.STmap create mode 100644 FlashLoader/Map/STM32F1_Low-density_32K.STmap create mode 100644 FlashLoader/Map/STM32F1_Med-density-value_128K.STmap create mode 100644 FlashLoader/Map/STM32F1_Med-density-value_64K.STmap create mode 100644 FlashLoader/Map/STM32F1_Med-density_128K.STmap create mode 100644 FlashLoader/Map/STM32F1_Med-density_64K.STmap create mode 100644 FlashLoader/Map/STM32F1_XL-density_1024K.STmap create mode 100644 FlashLoader/Map/STM32F1_XL-density_768K.STmap create mode 100644 FlashLoader/Map/STM32F2_1024K.STmap create mode 100644 FlashLoader/Map/STM32F2_128K.STmap create mode 100644 FlashLoader/Map/STM32F2_256K.STmap create mode 100644 FlashLoader/Map/STM32F2_512K.STmap create mode 100644 FlashLoader/Map/STM32F2_768K.STmap create mode 100644 FlashLoader/Map/STM32F3_02_01_64K.STmap create mode 100644 FlashLoader/Map/STM32F3_03_02_256K.STmap create mode 100644 FlashLoader/Map/STM32F3_03_02_512K.STmap create mode 100644 FlashLoader/Map/STM32F3_34_03_64K.STmap create mode 100644 FlashLoader/Map/STM32F3_7x_8x_256K.STmap create mode 100644 FlashLoader/Map/STM32F4_01_256K.STmap create mode 100644 FlashLoader/Map/STM32F4_01_512K.STmap create mode 100644 FlashLoader/Map/STM32F4_05_07_15_17_1024K.STmap create mode 100644 FlashLoader/Map/STM32F4_10_128K.STmap create mode 100644 FlashLoader/Map/STM32F4_11_512K.STmap create mode 100644 FlashLoader/Map/STM32F4_12_1024K.STmap create mode 100644 FlashLoader/Map/STM32F4_27_37_29_39_2048K.STmap create mode 100644 FlashLoader/Map/STM32F4_46_512K.STmap create mode 100644 FlashLoader/Map/STM32F4_69_79_2048K.STmap create mode 100644 FlashLoader/Map/STM32F7_4x_5x_1024K.STmap create mode 100644 FlashLoader/Map/STM32L0_x3_x2_x1_192K.STmap create mode 100644 FlashLoader/Map/STM32L0_x3_x2_x1_64K.STmap create mode 100644 FlashLoader/Map/STM32L1_Cat1-128K.STmap create mode 100644 FlashLoader/Map/STM32L1_Cat1-32K.STmap create mode 100644 FlashLoader/Map/STM32L1_Cat1-64K.STmap create mode 100644 FlashLoader/Map/STM32L1_Cat2-128K.STmap create mode 100644 FlashLoader/Map/STM32L1_Cat2-32K.STmap create mode 100644 FlashLoader/Map/STM32L1_Cat2-64K.STmap create mode 100644 FlashLoader/Map/STM32L1_Cat3-256K.STmap create mode 100644 FlashLoader/Map/STM32L1_Cat4-256K.STmap create mode 100644 FlashLoader/Map/STM32L1_Cat4-384K.STmap create mode 100644 FlashLoader/Map/STM32L1_Cat5-512K.STmap create mode 100644 FlashLoader/Map/STM32L4x_6_1024K.STmap create mode 100644 FlashLoader/Map/STM8L_16K.STmap create mode 100644 FlashLoader/Map/STM8L_32K.STmap create mode 100644 FlashLoader/Map/STM8L_64K.STmap create mode 100644 FlashLoader/Map/STM8L_8K.STmap create mode 100644 FlashLoader/Map/STM8_128K.STmap create mode 100644 FlashLoader/Map/STM8_16K.STmap create mode 100644 FlashLoader/Map/STM8_256K.STmap create mode 100644 FlashLoader/Map/STM8_32K.STmap create mode 100644 FlashLoader/Map/STM8_64K.STmap create mode 100644 FlashLoader/Map/STR750F.STmap create mode 100644 FlashLoader/Map/STR91xFA.STmap create mode 100644 FlashLoader/Map/STR91xFAWy2.STmap create mode 100644 FlashLoader/Map/STR91xFAWy4.STmap create mode 100644 FlashLoader/Map/STR91xFAWy6.STmap create mode 100644 FlashLoader/Map/STR91xFAWy7.STmap create mode 100644 FlashLoader/STBLLIB.dll create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_128K_ver_2.0.s19 create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_128K_ver_2.1.s19 create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_128K_ver_2.2.s19 create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_128K_ver_2.4.s19 create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_256K_ver_1.0.s19 create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_32K_verL_1.0.s19 create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_32K_ver_1.0.s19 create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_32K_ver_1.2.s19 create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_32K_ver_1.3.s19 create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_32K_ver_1.4.s19 create mode 100644 FlashLoader/STM8_Routines/E_W_ROUTINEs_8K_verL_1.0.s19 create mode 100644 FlashLoader/STMFlashLoader Demo.exe create mode 100644 FlashLoader/STMFlashLoader.exe create mode 100644 FlashLoader/STUARTBLLIB.dll create mode 100644 FlashLoader/readme.txt create mode 100644 FlashLoader/version.txt create mode 100644 JOMT 아이콘.ico create mode 100644 MainForm.Designer.vb create mode 100644 MainForm.resx create mode 100644 MainForm.vb create mode 100644 Module.vb create mode 100644 My Project/Application.Designer.vb create mode 100644 My Project/Application.myapp create mode 100644 My Project/AssemblyInfo.vb create mode 100644 My Project/Resources.Designer.vb create mode 100644 My Project/Resources.resx create mode 100644 My Project/Settings.Designer.vb create mode 100644 My Project/Settings.settings create mode 100644 My Project/app.manifest create mode 100644 README.md create mode 100644 Resources/STMFlashLoader.exe create mode 100644 Resources/logo.png create mode 100644 Resources/프로페셔널-페이스-거치대.png create mode 100644 Thumbs.db create mode 100644 app.config create mode 100644 docs/aging_main.png create mode 100644 docs/aging_start.png create mode 100644 packages.config diff --git a/ComClass1.vb b/ComClass1.vb new file mode 100644 index 0000000..1fc8c02 --- /dev/null +++ b/ComClass1.vb @@ -0,0 +1,23 @@ + _ +Public Class ComClass1 + +#Region "COM GUID" + ' 다음 GUID는 이 클래스의 COM ID와 COM 인터페이스를 + ' 제공합니다. 이 GUID를 변경하면 기존 클라이언트가 해당 + ' 클래스에 더 이상 액세스할 수 없게 됩니다. + Public Const ClassId As String = "ee11583f-ce47-4e93-b2a6-c458fa79fa25" + Public Const InterfaceId As String = "9c1ce8cb-3c3c-497d-9ac2-2f0fcef12dc0" + Public Const EventsId As String = "00e69b10-ed4c-4ca3-b457-754cda9d8a31" +#End Region + + ' 생성 가능한 COM 클래스에는 매개 변수가 없는 Public Sub New()가 + ' 포함되어 있어야 합니다. 그렇지 않으면 이 클래스가 + ' COM 레지스트리에 등록되지 않으며 CreateObject를 + ' 통해 이 클래스가 생성되지 않습니다. + Public Sub New() + MyBase.New() + End Sub + +End Class + + diff --git a/FW_Multi_Downloader.sln b/FW_Multi_Downloader.sln new file mode 100644 index 0000000..3729e6f --- /dev/null +++ b/FW_Multi_Downloader.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.13.35919.96 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "FW_Multi_Downloader", "FW_Multi_Downloader.vbproj", "{20D8C414-197C-4ABA-9791-3283368A7D44}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {20D8C414-197C-4ABA-9791-3283368A7D44}.Debug|x64.ActiveCfg = Debug|x64 + {20D8C414-197C-4ABA-9791-3283368A7D44}.Debug|x64.Build.0 = Debug|x64 + {20D8C414-197C-4ABA-9791-3283368A7D44}.Debug|x86.ActiveCfg = Debug|x86 + {20D8C414-197C-4ABA-9791-3283368A7D44}.Debug|x86.Build.0 = Debug|x86 + {20D8C414-197C-4ABA-9791-3283368A7D44}.Release|x64.ActiveCfg = Release|x64 + {20D8C414-197C-4ABA-9791-3283368A7D44}.Release|x64.Build.0 = Release|x64 + {20D8C414-197C-4ABA-9791-3283368A7D44}.Release|x86.ActiveCfg = Release|x86 + {20D8C414-197C-4ABA-9791-3283368A7D44}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B52834F1-BDE4-4FE3-9055-7970B7C8BDDD} + EndGlobalSection +EndGlobal diff --git a/FW_Multi_Downloader.vbproj b/FW_Multi_Downloader.vbproj new file mode 100644 index 0000000..44f94f8 --- /dev/null +++ b/FW_Multi_Downloader.vbproj @@ -0,0 +1,248 @@ + + + + Debug + x86 + + + 2.0 + {20D8C414-197C-4ABA-9791-3283368A7D44} + WinExe + FW_Multi_Downloader.My.MyApplication + FW_Multi_Downloader + FW_Multi_Downloader + 512 + WindowsForms + v4.8 + + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + AnyCPU + true + full + true + true + bin\Debug\ + FW_Multi_Downloader.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + AnyCPU + pdbonly + false + true + true + bin\Release\ + FW_Multi_Downloader.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false + + + On + + + Binary + + + Off + + + On + + + JOMT 아이콘.ico + + + My Project\app.manifest + + + true + true + true + bin\x64\Debug\ + FW_Multi_Downloader.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + full + AnyCPU + + + true + bin\x64\Release\ + FW_Multi_Downloader.xml + true + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + pdbonly + x64 + + + + packages\M2Mqtt.4.3.0.0\lib\net45\M2Mqtt.Net.dll + + + packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + + packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + packages\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + packages\Microsoft.Extensions.Logging.Abstractions.8.0.0\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll + + + packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + + packages\Npgsql.8.0.2\lib\netstandard2.0\Npgsql.dll + + + + packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + packages\System.Collections.Immutable.8.0.0\lib\net462\System.Collections.Immutable.dll + + + + + packages\System.Diagnostics.DiagnosticSource.8.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll + + + + packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll + + + packages\System.Text.Json.8.0.0\lib\net462\System.Text.Json.dll + + + packages\System.Threading.Channels.8.0.0\lib\net462\System.Threading.Channels.dll + + + packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + + + + + + + + + + + + + + + + + MainForm.vb + + + Form + + + + + True + Application.myapp + True + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + MainForm.vb + Designer + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/FlashLoader/Conf/Default.conf b/FlashLoader/Conf/Default.conf new file mode 100644 index 0000000..818e896 --- /dev/null +++ b/FlashLoader/Conf/Default.conf @@ -0,0 +1,98 @@ +;;******************** (C) COPYRIGHT 2015 STMicroelectronics ******************** +;;* File Name : Default.conf +;;* Author : MCD Application Team +;;* Version : V2.8.0 +;;* Date : 01-September-2015 +;;* Description : Defines the default parameters configuration +;;******************************************************************************** +;;* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +;;* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. +;;* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, +;;* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE +;;* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING +;;* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +;;******************************************************************************** +;;* FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE +;;* "MCD-ST Liberty SW License Agreement V2.pdf" +;;*******************************************************************************/ +[INTERFACE] +comm_int=0 + + +[Serial] +PortNumber=0 +BaudRate=2 +DataBits=3 +Parity=2 +StopBits=0 +TimeOut=9 +Echo=0 +Control=0 + +[MCUs] +f1=STM32F1 +f2=STR75x +f3=STM8 +f4=STR91xFA +f5=STM32L1 +f6=STM32F2 +f7=STM32F0 +f8=STM32L4 + +[f1] +ADDR_FLASH_SIZE=1FFFF7E0; +START_FLASH_ADDR=08000000; + +[f2] +AN=AN2430 +Title=STR75x System Memory boot mode +ADDR_FLASH_SIZE=FFFFFFFF; +START_FLASH_ADDR=20000000; + +[f3] +ADDR_FLASH_SIZE=FFFFFFFF; +START_FLASH_ADDR=00008000; + +[f4] +ADDR_FLASH_SIZE=FFFFFFFF; +START_FLASH_ADDR=00080000; + +[f5] +ADDR_FLASH_SIZE=1FF8004C; +START_FLASH_ADDR=08000000; + +[f6] +ADDR_FLASH_SIZE=1FFF7A22; +START_FLASH_ADDR=08000000; + +[f7] +ADDR_FLASH_SIZE=1FFFF7CC; +START_FLASH_ADDR=08000000; + +[f8] +ADDR_FLASH_SIZE=1FFF75E0; +START_FLASH_ADDR=08000000; + +[Operation] +Index=0 +Verify=0 +Run=0 +Optimize=0 +EROP=0 +DisEna=0 +RW=1 +RunAddress=08000000 +Family=0 +ApplyOPB=0 +EraseDnLoad=0 + + +[Files] +DownloadExt=*.s19 +UploadExt=*.s19 +OPBExt=*.s19 + +Download= +Upload= +OPBFile= + diff --git a/FlashLoader/Doc/UM0516.pdf b/FlashLoader/Doc/UM0516.pdf new file mode 100644 index 0000000000000000000000000000000000000000..15ef80df9f434f481ebfc979428919430df4425b GIT binary patch literal 223437 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