Skip to content

Commit 19fb5b5

Browse files
committed
调整Flash尺寸
1 parent c167ad9 commit 19fb5b5

File tree

3 files changed

+94
-64
lines changed
  • Bootloader/rt-thread-4.0.0-tiny-bootloader-v1001/bsp/stm32/stm32f103-fst-rc-tiny/applications
  • UserApp/rt-thread-4.0.0-tiny-user-v1001/bsp/stm32/stm32f103-fst-rc-tiny

3 files changed

+94
-64
lines changed

Bootloader/rt-thread-4.0.0-tiny-bootloader-v1001/bsp/stm32/stm32f103-fst-rc-tiny/applications/my_iap.h

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
#endif
1212

1313
#include "my_type.h"
14+
#include "rtdef.h"
15+
16+
17+
1418
//LED指示灯显示状态
1519
__IAPEXT unsigned char Led_status;
1620
#define Led_status MyIapLedStatus
@@ -43,8 +47,8 @@ __IAPEXT unsigned char Led_status;
4347
#ifdef USE_STM32F103xD
4448
//Flash基地址
4549
#define STM_FLASH_BASE (0x08000000)
46-
//片内Flash大小:256K
47-
#define STM_FLASH_SIZE (0x40000)
50+
//片内Flash大小:384K
51+
#define STM_FLASH_SIZE (0x60000)
4852
//扇区大小:2K
4953
#define STM_PAGE_SIZE (0x800)
5054
//默认地址映射
@@ -60,8 +64,8 @@ __IAPEXT unsigned char Led_status;
6064
#ifdef USE_STM32F103xE
6165
//Flash基地址
6266
#define STM_FLASH_BASE (0x08000000)
63-
//片内Flash大小:256K
64-
#define STM_FLASH_SIZE (0x40000)
67+
//片内Flash大小:512K
68+
#define STM_FLASH_SIZE (0x80000)
6569
//扇区大小:2K
6670
#define STM_PAGE_SIZE (0x800)
6771
//默认地址映射
@@ -114,8 +118,8 @@ __packed typedef struct
114118
unsigned char UpdataType;//升级类型
115119
// 0: 选择升级
116120
// 1: 强制升级
117-
unsigned int SoftFilter;//固件版本过滤, 大于该版本的需要升级
118-
unsigned int HardFilter;//适应的硬件版本, 大于该版本的需要升级
121+
unsigned int SoftFilter;//固件版本过滤, 低于该版本的需要升级
122+
unsigned int HardFilter;//适应的硬件版本, 等于该版本的需要升级
119123

120124
unsigned char FileType;//文件类型
121125
// 0: Hex文件(具有行校验,体积较大,ascii方式传输)
@@ -125,7 +129,7 @@ __packed typedef struct
125129
// 0: 广播方式,无应答
126130
// 1: 问答方式,一问一答
127131
unsigned int CommGap;//通信包间隔,单位ms
128-
unsigned int PackSize;//数据单包大小(4的整数倍)
132+
unsigned int PackSize;//数据单包大小(4的整数倍)
129133

130134
}MyIapFlagType;
131135
__IAPEXT MyIapFlagType MyIapFlag;
@@ -142,7 +146,7 @@ __packed typedef struct
142146
unsigned char WriteStep;//写步骤
143147
//0:空闲
144148
//1:接收数据完成
145-
//2:正在写入
149+
//2:正在写入,保护缓存
146150
//3:写完成
147151
unsigned long WriteTime;//上一包写入时间
148152
unsigned long WriteAddr;//当前写地址
@@ -169,13 +173,56 @@ __packed typedef enum
169173
__IAPEXT MyIapLedStatusType MyIapLedStatus;
170174

171175

176+
177+
//***********************************************************
178+
//通用协议结构(包头)
179+
__packed typedef struct
180+
{
181+
unsigned char Head[3];//头 0x3A,0x5B,0x7C
182+
unsigned char ProVer;//协议版本号
183+
unsigned char DevType;//设备类型
184+
unsigned char DevAddr;//设备地址
185+
unsigned char AskFlag;//应答标志
186+
//数据包发起方:
187+
//0x00:命令需要应答
188+
//0x01:命令不需要应答
189+
//数据包应答方:
190+
//0x02:正在应答(后续还有数据包)
191+
//0x03:应答完成(成功)
192+
//0x04:数据错误,请求重发或终止
193+
//0x05:设备忙,无法响应
194+
unsigned int DateLen;//数据体长度
195+
}MyProHeadBaseType;
196+
197+
//通用协议结构(包头)
198+
__packed typedef struct
199+
{
200+
unsigned char Crc[2];//校验
201+
unsigned char Tail;//尾 0x7E
202+
}MyProTailBaseType;
203+
204+
//开始升级协议结构(US)
205+
__packed typedef struct
206+
{
207+
unsigned char Cmd[2];//
208+
unsigned char Tail;//尾 0x7E
209+
}MyProCmdUSType;
210+
211+
212+
213+
214+
215+
172216
//函数声明
173217
__IAPEXT void Iap_Map_Init(void);
174218
__IAPEXT void iap_jump_to_user_app(void);
175219
__IAPEXT void MX_GPIO_Init(void);
176220
__IAPEXT void LedRun(void);
177221
__IAPEXT void led_display_entry(void *parameter);
178222
__IAPEXT void iap_thread_init(void);
223+
__IAPEXT rt_err_t dev_iap_uart_func(rt_device_t dev, rt_size_t size);
224+
__IAPEXT void my_soft_reset(void);
225+
__IAPEXT void iap_uart_dev_init(void);
179226

180227
#endif
181228

0 commit comments

Comments
 (0)