diff --git a/App/flash_param.h b/App/flash_param.h
index 8ab2a34..40ab31e 100644
--- a/App/flash_param.h
+++ b/App/flash_param.h
@@ -16,13 +16,12 @@
extern "C" {
#endif
-/* Flash configuration for STM32F103R8 (64KB Flash) */
+/* Flash configuration for the current STM32F103RDT6 target (384KB Flash). */
#define FLASH_PARAM_PAGE_SIZE 1024 /* 1KB per page for STM32F103 */
-#define FLASH_PARAM_START_ADDR 0x0800FC00 /* Last 1KB of 64KB Flash */
-#define FLASH_PARAM_END_ADDR 0x08010000 /* End of Flash */
+#define FLASH_PARAM_START_ADDR 0x0805FC00 /* Last 1KB page of 384KB Flash */
+#define FLASH_PARAM_END_ADDR 0x08060000 /* End of 384KB Flash */
-/* For STM32F103RC (256KB), use: 0x0803FC00 */
-/* For STM32F103RB (128KB), use: 0x0801FC00 */
+/* Historical reference: STM32F103RCT6 would use 0x0803FC00 as its last page. */
/**
* @brief Initialize Flash parameter storage
diff --git a/Keil工程配置说明.txt b/Keil工程配置说明.txt
index 5520e52..eaf732e 100644
--- a/Keil工程配置说明.txt
+++ b/Keil工程配置说明.txt
@@ -113,8 +113,8 @@ USE_HAL_DRIVER,STM32F103xE
========================================
确认 ROM 和 RAM 配置正确:
-- IROM1: 0x08000000, Size: 0x40000 (256KB)
-- IRAM1: 0x20000000, Size: 0xC000 (48KB)
+- IROM1: 0x08000000, Size: 0x60000 (384KB)
+- IRAM1: 0x20000000, Size: 0x10000 (64KB)
========================================
六、编译验证
@@ -138,7 +138,7 @@ Debug 选项卡:
Utilities 选项卡:
- 选择正确的 Flash 算法
-- STM32F10x High-density Flash (256KB)
+- STM32F10x High-density Flash (384KB / 0x60000)
========================================
快速添加方法(可选)
diff --git a/MDK-ARM/TCP2UART.uvprojx b/MDK-ARM/TCP2UART.uvprojx
index 29027ed..368cfd6 100644
--- a/MDK-ARM/TCP2UART.uvprojx
+++ b/MDK-ARM/TCP2UART.uvprojx
@@ -14,16 +14,16 @@
0
- STM32F103RC
+ STM32F103RD
STMicroelectronics
Keil.STM32F1xx_DFP.2.4.1
https://www.keil.com/pack/
- IRAM(0x20000000,0x0000C000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE
+ IRAM(0x20000000,0x00010000) IROM(0x08000000,0x00060000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_HD -FS08000000 -FL040000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_HD.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000 -FP0($$Device:STM32F103RD$Flash\STM32F10x_512.FLM))
0
- $$Device:STM32F103RC$Device\Include\stm32f10x.h
+ $$Device:STM32F103RD$Device\Include\stm32f10x.h
@@ -33,7 +33,7 @@
- $$Device:STM32F103RC$SVD\STM32F103xx.svd
+ $$Device:STM32F103RD$SVD\STM32F103xx.svd
0
0
@@ -110,7 +110,7 @@
SARMCM3.DLL
- -REMAP
+ -REMAP
DCM.DLL
-pCM3
SARMCM3.DLL
@@ -138,7 +138,7 @@
1
BIN\UL2CM3.DLL
- "" ()
+
@@ -247,12 +247,12 @@
0
0x20000000
- 0xc000
+ 0x10000
1
0x8000000
- 0x40000
+ 0x60000
0
@@ -277,7 +277,7 @@
1
0x8000000
- 0x40000
+ 0x60000
1
@@ -302,7 +302,7 @@
0
0x20000000
- 0xc000
+ 0x10000
0
diff --git a/MDK-ARM/startup_stm32f103xe.s b/MDK-ARM/startup_stm32f103xe.s
index 7cd2477..39fb3a9 100644
--- a/MDK-ARM/startup_stm32f103xe.s
+++ b/MDK-ARM/startup_stm32f103xe.s
@@ -39,7 +39,7 @@ __initial_sp
; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
;
-Heap_Size EQU 0x200
+Heap_Size EQU 0x400
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
diff --git a/TCP2UART.ioc b/TCP2UART.ioc
index 6933f4d..8b91976 100644
--- a/TCP2UART.ioc
+++ b/TCP2UART.ioc
@@ -70,11 +70,11 @@ FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2
FREERTOS.configMAX_PRIORITIES=7
FREERTOS.configMINIMAL_STACK_SIZE=128
FREERTOS.configSUPPORT_DYNAMIC_ALLOCATION=1
-FREERTOS.configSUPPORT_STATIC_ALLOCATION=0
+FREERTOS.configSUPPORT_STATIC_ALLOCATION=1
FREERTOS.configTICK_RATE_HZ=1000
-FREERTOS.configTOTAL_HEAP_SIZE=10240
+FREERTOS.configTOTAL_HEAP_SIZE=15360
FREERTOS.configUSE_COUNTING_SEMAPHORES=1
-FREERTOS.configUSE_IDLE_HOOK=0
+FREERTOS.configUSE_IDLE_HOOK=1
FREERTOS.configUSE_MALLOC_FAILED_HOOK=1
FREERTOS.configUSE_MUTEXES=1
FREERTOS.configUSE_PREEMPTION=1
@@ -83,7 +83,7 @@ FREERTOS.configUSE_TICK_HOOK=0
File.Version=6
GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false
-Mcu.CPN=STM32F103RCT6
+Mcu.CPN=STM32F103RDT6
Mcu.Family=STM32F1
Mcu.IP0=DMA
Mcu.IP1=FREERTOS
@@ -123,7 +123,7 @@ Mcu.Pin20=VP_TIM4_VS_ClockSourceINT
Mcu.PinsNb=21
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
-Mcu.UserName=STM32F103RCTx
+Mcu.UserName=STM32F103RDTx
MxCube.Version=6.16.1
MxDb.Version=DB.6.0.161
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
@@ -182,7 +182,7 @@ PC13-TAMPER-RTC.Signal=GPIO_Output
PCC.Checker=false
PCC.Line=STM32F103
PCC.MCU=STM32F103R(C-D-E)Tx
-PCC.PartNumber=STM32F103RCTx
+PCC.PartNumber=STM32F103RDTx
PCC.Series=STM32F1
PCC.Temperature=25
PCC.Vdd=3.3
@@ -200,12 +200,12 @@ ProjectManager.CoupleFile=true
ProjectManager.CustomerFirmwarePackage=
ProjectManager.DefaultFWLocation=true
ProjectManager.DeletePrevious=true
-ProjectManager.DeviceId=STM32F103RCTx
+ProjectManager.DeviceId=STM32F103RDTx
ProjectManager.FirmwarePackage=STM32Cube FW_F1 V1.8.7
ProjectManager.FreePins=false
ProjectManager.FreePinsContext=
ProjectManager.HalAssertFull=false
-ProjectManager.HeapSize=0x200
+ProjectManager.HeapSize=0x400
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=0
diff --git a/项目技术实现.md b/项目技术实现.md
index 884eecb..b6c98b0 100644
--- a/项目技术实现.md
+++ b/项目技术实现.md
@@ -520,8 +520,8 @@ FreeRTOS 可管理的中断优先级必须 >= `configMAX_SYSCALL_INTERRUPT_PRIOR
| Flash | 256 KB | 384 KB |
| SRAM | 48 KB | 64 KB |
| 引脚 | LQFP64 | LQFP64(完全兼容) |
-| 启动文件 | `startup_stm32f103xe.s` | `startup_stm32f103xd.s` |
-| 宏定义 | `STM32F103xE` | `STM32F103xD` |
+| 启动文件 | `startup_stm32f103xe.s` | `startup_stm32f103xe.s` |
+| 宏定义 | `STM32F103xE` | `STM32F103xE` |
| Flash 算法 | `STM32F10x_HD` | `STM32F10x_HD`(相同) |
| SRAM 大小 | `0xC000` | `0x10000` |
| Flash 大小 | `0x40000` | `0x60000` |