fix: align rd target memory and startup settings

This commit is contained in:
2026-04-20 08:11:49 +08:00
parent 3f91481d00
commit 77da670f5c
6 changed files with 29 additions and 30 deletions
+4 -5
View File
@@ -16,13 +16,12 @@
extern "C" { extern "C" {
#endif #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_PAGE_SIZE 1024 /* 1KB per page for STM32F103 */
#define FLASH_PARAM_START_ADDR 0x0800FC00 /* Last 1KB of 64KB Flash */ #define FLASH_PARAM_START_ADDR 0x0805FC00 /* Last 1KB page of 384KB Flash */
#define FLASH_PARAM_END_ADDR 0x08010000 /* End of Flash */ #define FLASH_PARAM_END_ADDR 0x08060000 /* End of 384KB Flash */
/* For STM32F103RC (256KB), use: 0x0803FC00 */ /* Historical reference: STM32F103RCT6 would use 0x0803FC00 as its last page. */
/* For STM32F103RB (128KB), use: 0x0801FC00 */
/** /**
* @brief Initialize Flash parameter storage * @brief Initialize Flash parameter storage
+3 -3
View File
@@ -113,8 +113,8 @@ USE_HAL_DRIVER,STM32F103xE
======================================== ========================================
确认 ROM 和 RAM 配置正确: 确认 ROM 和 RAM 配置正确:
- IROM1: 0x08000000, Size: 0x40000 (256KB) - IROM1: 0x08000000, Size: 0x60000 (384KB)
- IRAM1: 0x20000000, Size: 0xC000 (48KB) - IRAM1: 0x20000000, Size: 0x10000 (64KB)
======================================== ========================================
六、编译验证 六、编译验证
@@ -138,7 +138,7 @@ Debug 选项卡:
Utilities 选项卡: Utilities 选项卡:
- 选择正确的 Flash 算法 - 选择正确的 Flash 算法
- STM32F10x High-density Flash (256KB) - STM32F10x High-density Flash (384KB / 0x60000)
======================================== ========================================
快速添加方法(可选) 快速添加方法(可选)
+11 -11
View File
@@ -14,16 +14,16 @@
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>STM32F103RC</Device> <Device>STM32F103RD</Device>
<Vendor>STMicroelectronics</Vendor> <Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.4.1</PackID> <PackID>Keil.STM32F1xx_DFP.2.4.1</PackID>
<PackURL>https://www.keil.com/pack/</PackURL> <PackURL>https://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000,0x0000C000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu> <Cpu>IRAM(0x20000000,0x00010000) IROM(0x08000000,0x00060000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile> <StartupFile></StartupFile>
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_HD -FS08000000 -FL040000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_HD.FLM))</FlashDriverDll> <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000 -FP0($$Device:STM32F103RD$Flash\STM32F10x_512.FLM))</FlashDriverDll>
<DeviceId>0</DeviceId> <DeviceId>0</DeviceId>
<RegisterFile>$$Device:STM32F103RC$Device\Include\stm32f10x.h</RegisterFile> <RegisterFile>$$Device:STM32F103RD$Device\Include\stm32f10x.h</RegisterFile>
<MemoryEnv></MemoryEnv> <MemoryEnv></MemoryEnv>
<Cmp></Cmp> <Cmp></Cmp>
<Asm></Asm> <Asm></Asm>
@@ -33,7 +33,7 @@
<SLE66CMisc></SLE66CMisc> <SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc> <SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc> <SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile>$$Device:STM32F103RC$SVD\STM32F103xx.svd</SFDFile> <SFDFile>$$Device:STM32F103RD$SVD\STM32F103xx.svd</SFDFile>
<bCustSvd>0</bCustSvd> <bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv> <UseEnv>0</UseEnv>
<BinPath></BinPath> <BinPath></BinPath>
@@ -110,7 +110,7 @@
</CommonProperty> </CommonProperty>
<DllOption> <DllOption>
<SimDllName>SARMCM3.DLL</SimDllName> <SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments>-REMAP</SimDllArguments> <SimDllArguments> -REMAP</SimDllArguments>
<SimDlgDll>DCM.DLL</SimDlgDll> <SimDlgDll>DCM.DLL</SimDlgDll>
<SimDlgDllArguments>-pCM3</SimDlgDllArguments> <SimDlgDllArguments>-pCM3</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName> <TargetDllName>SARMCM3.DLL</TargetDllName>
@@ -138,7 +138,7 @@
</Flash1> </Flash1>
<bUseTDR>1</bUseTDR> <bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2> <Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3>"" ()</Flash3> <Flash3></Flash3>
<Flash4></Flash4> <Flash4></Flash4>
<pFcarmOut></pFcarmOut> <pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp> <pFcarmGrp></pFcarmGrp>
@@ -247,12 +247,12 @@
<IRAM> <IRAM>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x20000000</StartAddress> <StartAddress>0x20000000</StartAddress>
<Size>0xc000</Size> <Size>0x10000</Size>
</IRAM> </IRAM>
<IROM> <IROM>
<Type>1</Type> <Type>1</Type>
<StartAddress>0x8000000</StartAddress> <StartAddress>0x8000000</StartAddress>
<Size>0x40000</Size> <Size>0x60000</Size>
</IROM> </IROM>
<XRAM> <XRAM>
<Type>0</Type> <Type>0</Type>
@@ -277,7 +277,7 @@
<OCR_RVCT4> <OCR_RVCT4>
<Type>1</Type> <Type>1</Type>
<StartAddress>0x8000000</StartAddress> <StartAddress>0x8000000</StartAddress>
<Size>0x40000</Size> <Size>0x60000</Size>
</OCR_RVCT4> </OCR_RVCT4>
<OCR_RVCT5> <OCR_RVCT5>
<Type>1</Type> <Type>1</Type>
@@ -302,7 +302,7 @@
<OCR_RVCT9> <OCR_RVCT9>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x20000000</StartAddress> <StartAddress>0x20000000</StartAddress>
<Size>0xc000</Size> <Size>0x10000</Size>
</OCR_RVCT9> </OCR_RVCT9>
<OCR_RVCT10> <OCR_RVCT10>
<Type>0</Type> <Type>0</Type>
+1 -1
View File
@@ -39,7 +39,7 @@ __initial_sp
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h> ; </h>
Heap_Size EQU 0x200 Heap_Size EQU 0x400
AREA HEAP, NOINIT, READWRITE, ALIGN=3 AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base __heap_base
+8 -8
View File
@@ -70,11 +70,11 @@ FREERTOS.configCHECK_FOR_STACK_OVERFLOW=2
FREERTOS.configMAX_PRIORITIES=7 FREERTOS.configMAX_PRIORITIES=7
FREERTOS.configMINIMAL_STACK_SIZE=128 FREERTOS.configMINIMAL_STACK_SIZE=128
FREERTOS.configSUPPORT_DYNAMIC_ALLOCATION=1 FREERTOS.configSUPPORT_DYNAMIC_ALLOCATION=1
FREERTOS.configSUPPORT_STATIC_ALLOCATION=0 FREERTOS.configSUPPORT_STATIC_ALLOCATION=1
FREERTOS.configTICK_RATE_HZ=1000 FREERTOS.configTICK_RATE_HZ=1000
FREERTOS.configTOTAL_HEAP_SIZE=10240 FREERTOS.configTOTAL_HEAP_SIZE=15360
FREERTOS.configUSE_COUNTING_SEMAPHORES=1 FREERTOS.configUSE_COUNTING_SEMAPHORES=1
FREERTOS.configUSE_IDLE_HOOK=0 FREERTOS.configUSE_IDLE_HOOK=1
FREERTOS.configUSE_MALLOC_FAILED_HOOK=1 FREERTOS.configUSE_MALLOC_FAILED_HOOK=1
FREERTOS.configUSE_MUTEXES=1 FREERTOS.configUSE_MUTEXES=1
FREERTOS.configUSE_PREEMPTION=1 FREERTOS.configUSE_PREEMPTION=1
@@ -83,7 +83,7 @@ FREERTOS.configUSE_TICK_HOOK=0
File.Version=6 File.Version=6
GPIO.groupedBy=Group By Peripherals GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false KeepUserPlacement=false
Mcu.CPN=STM32F103RCT6 Mcu.CPN=STM32F103RDT6
Mcu.Family=STM32F1 Mcu.Family=STM32F1
Mcu.IP0=DMA Mcu.IP0=DMA
Mcu.IP1=FREERTOS Mcu.IP1=FREERTOS
@@ -123,7 +123,7 @@ Mcu.Pin20=VP_TIM4_VS_ClockSourceINT
Mcu.PinsNb=21 Mcu.PinsNb=21
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32F103RCTx Mcu.UserName=STM32F103RDTx
MxCube.Version=6.16.1 MxCube.Version=6.16.1
MxDb.Version=DB.6.0.161 MxDb.Version=DB.6.0.161
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false 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.Checker=false
PCC.Line=STM32F103 PCC.Line=STM32F103
PCC.MCU=STM32F103R(C-D-E)Tx PCC.MCU=STM32F103R(C-D-E)Tx
PCC.PartNumber=STM32F103RCTx PCC.PartNumber=STM32F103RDTx
PCC.Series=STM32F1 PCC.Series=STM32F1
PCC.Temperature=25 PCC.Temperature=25
PCC.Vdd=3.3 PCC.Vdd=3.3
@@ -200,12 +200,12 @@ ProjectManager.CoupleFile=true
ProjectManager.CustomerFirmwarePackage= ProjectManager.CustomerFirmwarePackage=
ProjectManager.DefaultFWLocation=true ProjectManager.DefaultFWLocation=true
ProjectManager.DeletePrevious=true ProjectManager.DeletePrevious=true
ProjectManager.DeviceId=STM32F103RCTx ProjectManager.DeviceId=STM32F103RDTx
ProjectManager.FirmwarePackage=STM32Cube FW_F1 V1.8.7 ProjectManager.FirmwarePackage=STM32Cube FW_F1 V1.8.7
ProjectManager.FreePins=false ProjectManager.FreePins=false
ProjectManager.FreePinsContext= ProjectManager.FreePinsContext=
ProjectManager.HalAssertFull=false ProjectManager.HalAssertFull=false
ProjectManager.HeapSize=0x200 ProjectManager.HeapSize=0x400
ProjectManager.KeepUserCode=true ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=0 ProjectManager.LibraryCopy=0
+2 -2
View File
@@ -520,8 +520,8 @@ FreeRTOS 可管理的中断优先级必须 >= `configMAX_SYSCALL_INTERRUPT_PRIOR
| Flash | 256 KB | 384 KB | | Flash | 256 KB | 384 KB |
| SRAM | 48 KB | 64 KB | | SRAM | 48 KB | 64 KB |
| 引脚 | LQFP64 | LQFP64(完全兼容) | | 引脚 | LQFP64 | LQFP64(完全兼容) |
| 启动文件 | `startup_stm32f103xe.s` | `startup_stm32f103xd.s` | | 启动文件 | `startup_stm32f103xe.s` | `startup_stm32f103xe.s` |
| 宏定义 | `STM32F103xE` | `STM32F103xD` | | 宏定义 | `STM32F103xE` | `STM32F103xE` |
| Flash 算法 | `STM32F10x_HD` | `STM32F10x_HD`(相同) | | Flash 算法 | `STM32F10x_HD` | `STM32F10x_HD`(相同) |
| SRAM 大小 | `0xC000` | `0x10000` | | SRAM 大小 | `0xC000` | `0x10000` |
| Flash 大小 | `0x40000` | `0x60000` | | Flash 大小 | `0x40000` | `0x60000` |