Commit 51d0bbfbfbf4c4a4e56e5e2d27be548c76f7e806
1 parent
0e00ed59
MFGW 2.0 init
Showing
24 changed files
with
2676 additions
and
913 deletions
.gitignore
CORE/startup_stm32f40_41xxx.s
| ... | ... | @@ -38,7 +38,7 @@ |
| 38 | 38 | ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> |
| 39 | 39 | ; </h> |
| 40 | 40 | |
| 41 | -Stack_Size EQU 0x00000400 | |
| 41 | +Stack_Size EQU 0x00000C00 | |
| 42 | 42 | |
| 43 | 43 | AREA STACK, NOINIT, READWRITE, ALIGN=3 |
| 44 | 44 | Stack_Mem SPACE Stack_Size |
| ... | ... | @@ -178,7 +178,7 @@ Reset_Handler PROC |
| 178 | 178 | EXPORT Reset_Handler [WEAK] |
| 179 | 179 | IMPORT SystemInit |
| 180 | 180 | IMPORT __main |
| 181 | - | |
| 181 | + | |
| 182 | 182 | LDR R0, =SystemInit |
| 183 | 183 | BLX R0 |
| 184 | 184 | LDR R0, =__main | ... | ... |
HARDWARE/FLASH/flash.c
| ... | ... | @@ -4,8 +4,6 @@ u32 STMFLASH_ReadWord(u32 faddr) |
| 4 | 4 | { |
| 5 | 5 | return *(vu32*)faddr; |
| 6 | 6 | } |
| 7 | - | |
| 8 | - | |
| 9 | 7 | uint16_t STMFLASH_GetFlashSector(u32 addr) |
| 10 | 8 | { |
| 11 | 9 | if(addr<ADDR_FLASH_SECTOR_1)return FLASH_Sector_0; |
| ... | ... | @@ -22,56 +20,128 @@ uint16_t STMFLASH_GetFlashSector(u32 addr) |
| 22 | 20 | return FLASH_Sector_11; |
| 23 | 21 | } |
| 24 | 22 | |
| 25 | -void STMFLASH_Write(u32 WriteAddr,u32 *pBuffer,u32 NumToWrite) | |
| 26 | -{ | |
| 27 | - FLASH_Status status = FLASH_COMPLETE; | |
| 28 | - u32 addrx=0; | |
| 29 | - u32 endaddr=0; | |
| 30 | - if(WriteAddr%4) | |
| 31 | - return; //非法地址 | |
| 32 | - | |
| 33 | - FLASH_Unlock(); //解锁 | |
| 23 | + | |
| 24 | +uint32_t STM_FLASH_Erase(uint32_t addrx) | |
| 25 | +{ | |
| 26 | + //解锁 | |
| 34 | 27 | FLASH_DataCacheCmd(DISABLE);//FLASH擦除期间,必须禁止数据缓存 |
| 35 | - | |
| 36 | - addrx = WriteAddr; //写入的起始地址 | |
| 37 | - endaddr = WriteAddr + NumToWrite; //写入的结束地址 | |
| 38 | - | |
| 39 | - if(addrx<0X1FFF0000) //只有主存储区,才需要执行擦除操作!! | |
| 28 | + FLASH_Unlock(); | |
| 29 | + uint8_t ret = 1; | |
| 30 | + switch(addrx) | |
| 40 | 31 | { |
| 41 | - if(addrx == APP_RUN_ADDR) | |
| 32 | + case APP_RUN_ADDR: | |
| 33 | + { | |
| 34 | + if(FLASH_COMPLETE != FLASH_EraseSector(FLASH_Sector_4,VoltageRange_3))//VCC=2.7~3.6V之间!! | |
| 35 | + { | |
| 36 | + ret = 0; | |
| 37 | + break; | |
| 38 | + } | |
| 39 | + if(FLASH_COMPLETE != FLASH_EraseSector(FLASH_Sector_5,VoltageRange_3))//VCC=2.7~3.6V之间!! | |
| 40 | + { | |
| 41 | + ret = 0; | |
| 42 | + break; | |
| 43 | + } | |
| 44 | + } | |
| 45 | + break; | |
| 46 | + case FLAG_BASE_ADDR: | |
| 42 | 47 | { |
| 43 | - status = FLASH_EraseSector(FLASH_Sector_4,VoltageRange_3);//VCC=2.7~3.6V之间!! | |
| 44 | - status = FLASH_EraseSector(FLASH_Sector_5,VoltageRange_3); | |
| 48 | + if(FLASH_COMPLETE != FLASH_EraseSector(FLASH_Sector_1,VoltageRange_3))//VCC=2.7~3.6V之间!! | |
| 49 | + { | |
| 50 | + ret = 0; | |
| 51 | + break; | |
| 52 | + } | |
| 45 | 53 | } |
| 46 | - else if (addrx == FLAG_BASE_ADDR) | |
| 54 | + break; | |
| 55 | + case PARAM_BASE_ADDR: | |
| 47 | 56 | { |
| 48 | - status = FLASH_EraseSector(FLASH_Sector_1,VoltageRange_3); | |
| 57 | + if(FLASH_COMPLETE != FLASH_EraseSector(FLASH_Sector_2,VoltageRange_3))//VCC=2.7~3.6V之间!! | |
| 58 | + { | |
| 59 | + ret = 0; | |
| 60 | + break; | |
| 61 | + } | |
| 49 | 62 | } |
| 50 | - | |
| 63 | + break; | |
| 64 | + case APP_LOAD_ADDR: | |
| 65 | + { | |
| 66 | + if(FLASH_COMPLETE != FLASH_EraseSector(FLASH_Sector_6,VoltageRange_3))//VCC=2.7~3.6V之间!! | |
| 67 | + { | |
| 68 | + ret = 0; | |
| 69 | + break; | |
| 70 | + } | |
| 71 | + if(FLASH_COMPLETE != FLASH_EraseSector(FLASH_Sector_7,VoltageRange_3))//VCC=2.7~3.6V之间!! | |
| 72 | + { | |
| 73 | + ret = 0; | |
| 74 | + break; | |
| 75 | + } | |
| 76 | + } | |
| 77 | + break; | |
| 78 | + default:break; | |
| 79 | + } | |
| 80 | + FLASH_Lock(); | |
| 81 | + FLASH_DataCacheCmd(ENABLE);//FLASH擦除期间,必须禁止数据缓存 | |
| 82 | + return ret; | |
| 83 | +} | |
| 84 | + | |
| 85 | +uint32_t STM_FLASH_Get_Block_Size(uint32_t addrx) | |
| 86 | +{ | |
| 87 | + switch(addrx) | |
| 88 | + { | |
| 89 | + case APP_RUN_ADDR: | |
| 90 | + return 192*1024; | |
| 91 | + case FLAG_BASE_ADDR: | |
| 92 | + case PARAM_BASE_ADDR: | |
| 93 | + return 16*1024; | |
| 94 | + case APP_LOAD_ADDR: | |
| 95 | + return 192*1024; | |
| 96 | + default:break; | |
| 51 | 97 | } |
| 98 | + return 0; | |
| 99 | +} | |
| 100 | + | |
| 101 | +//FlashAddress: start address for writing data buffer | |
| 102 | +//Data: pointer on data buffer | |
| 103 | +//DataLength: length of data buffer (unit is 32-bit word) | |
| 104 | +//return: | |
| 105 | +// 0=Data successfully written to Flash memory | |
| 106 | +// 1=Error occurred while writing data in Flash memory | |
| 107 | +uint32_t STMFLASH_Write(u32 WriteAddr,u32 *pBuffer,u32 NumToWrite) | |
| 108 | +{ | |
| 109 | + u32 endaddr=0; | |
| 110 | + if(WriteAddr%4) | |
| 111 | + return 1 ; //非法地址 | |
| 112 | + endaddr = WriteAddr + NumToWrite; //写入的结束地址 | |
| 52 | 113 | |
| 53 | - if(status==FLASH_COMPLETE) | |
| 114 | + FLASH_Unlock(); //解锁 | |
| 115 | + FLASH_DataCacheCmd(ENABLE);//FLASH擦除期间,必须禁止数据缓存 | |
| 116 | + | |
| 117 | + | |
| 118 | + while(WriteAddr<endaddr)//写数据 | |
| 54 | 119 | { |
| 55 | - while(WriteAddr<endaddr)//写数据 | |
| 120 | + if (FLASH_ProgramWord(WriteAddr, *pBuffer) == FLASH_COMPLETE) | |
| 56 | 121 | { |
| 57 | - if(FLASH_ProgramWord(WriteAddr,*pBuffer)!=FLASH_COMPLETE)//写入数据 | |
| 58 | - { | |
| 59 | - break; //写入异常 | |
| 122 | + /* Check the written value */ | |
| 123 | + if (STMFLASH_ReadWord(WriteAddr) != *pBuffer) | |
| 124 | + { | |
| 125 | + /* Flash content doesn't match SRAM content */ | |
| 126 | +// FLASH_DataCacheCmd(ENABLE); //FLASH擦除结束,开启数据缓存 | |
| 127 | + FLASH_Lock();//上锁 | |
| 128 | + return 1; | |
| 60 | 129 | } |
| 130 | + /* Increment FLASH destination address */ | |
| 61 | 131 | WriteAddr+=4; |
| 62 | 132 | pBuffer++; |
| 63 | - } | |
| 133 | + } | |
| 134 | + else | |
| 135 | + { | |
| 136 | +// FLASH_DataCacheCmd(ENABLE); //FLASH擦除结束,开启数据缓存 | |
| 137 | + FLASH_Lock();//上锁 | |
| 138 | + return 1; | |
| 139 | + } | |
| 64 | 140 | } |
| 65 | - | |
| 66 | - FLASH_DataCacheCmd(ENABLE); //FLASH擦除结束,开启数据缓存 | |
| 67 | - FLASH_Lock();//上锁 | |
| 141 | +// FLASH_DataCacheCmd(ENABLE); //FLASH擦除结束,开启数据缓存 | |
| 142 | + FLASH_Lock();//上锁 | |
| 143 | + return 0; | |
| 68 | 144 | } |
| 69 | - | |
| 70 | - | |
| 71 | - | |
| 72 | - | |
| 73 | - | |
| 74 | - | |
| 75 | 145 | #define Tracy 0 |
| 76 | 146 | #if Tracy |
| 77 | 147 | void flash_write(u32 addr,u16 data) |
| ... | ... | @@ -131,5 +201,27 @@ void flash_erase(u32 addrx) |
| 131 | 201 | FLASH_DataCacheCmd(ENABLE); //FLASH擦除结束,开启数据缓存 |
| 132 | 202 | FLASH_Lock(); |
| 133 | 203 | } |
| 204 | + | |
| 205 | +uint32_t STM_FLASH_Erase(uint32_t StartSector) | |
| 206 | +{ | |
| 207 | + uint32_t UserStartSector = FLASH_Sector_1, i = 0; | |
| 208 | + | |
| 209 | + /* Get the sector where start the user flash area */ | |
| 210 | + UserStartSector = STMFLASH_GetFlashSector(StartSector); | |
| 211 | + | |
| 212 | + for(i = UserStartSector; i <= FLASH_Sector_5; i += 8) | |
| 213 | + { | |
| 214 | + /* Device voltage range supposed to be [2.7V to 3.6V], the operation will | |
| 215 | + be done by word */ | |
| 216 | + if (FLASH_EraseSector(i, VoltageRange_3) != FLASH_COMPLETE) | |
| 217 | + { | |
| 218 | + /* Error occurred while page erase */ | |
| 219 | + return (1); | |
| 220 | + } | |
| 221 | + } | |
| 222 | + | |
| 223 | + return (0); | |
| 224 | +} | |
| 225 | + | |
| 134 | 226 | #endif |
| 135 | 227 | ... | ... |
HARDWARE/FLASH/flash.h
| 1 | 1 | #ifndef _FLASH_H |
| 2 | 2 | #define _FLASH_H |
| 3 | - | |
| 4 | - | |
| 5 | 3 | #include "dev.h" |
| 6 | 4 | |
| 7 | - | |
| 8 | - | |
| 9 | 5 | //FLASH 扇区的起始地址 |
| 10 | -#define ADDR_FLASH_SECTOR_0 ((u32)0x08000000) //扇区0起始地址, 16 Kbytes | |
| 11 | -#define ADDR_FLASH_SECTOR_1 ((u32)0x08004000) //扇区1起始地址, 16 Kbytes | |
| 12 | -#define ADDR_FLASH_SECTOR_2 ((u32)0x08008000) //扇区2起始地址, 16 Kbytes | |
| 13 | - | |
| 14 | -#define ADDR_FLASH_SECTOR_3 ((u32)0x0800C000) //扇区3起始地址, 16 Kbytes | |
| 6 | +#define ADDR_FLASH_SECTOR_0 ((uint32_t)0x08000000) //扇区0起始地址, 16 Kbytes | |
| 7 | +#define ADDR_FLASH_SECTOR_1 ((uint32_t)0x08004000) //扇区1起始地址, 16 Kbytes | |
| 8 | +#define ADDR_FLASH_SECTOR_2 ((uint32_t)0x08008000) //扇区2起始地址, 16 Kbytes | |
| 15 | 9 | |
| 16 | -#define ADDR_FLASH_SECTOR_4 ((u32)0x08010000) //扇区4起始地址, 64 Kbytes | |
| 10 | +#define ADDR_FLASH_SECTOR_3 ((uint32_t)0x0800C000) //扇区3起始地址, 16 Kbytes | |
| 17 | 11 | |
| 18 | -#define ADDR_FLASH_SECTOR_5 ((u32)0x08020000) //扇区5起始地址, 128 Kbytes | |
| 19 | -#define ADDR_FLASH_SECTOR_6 ((u32)0x08040000) //扇区6起始地址, 128 Kbytes | |
| 20 | -#define ADDR_FLASH_SECTOR_7 ((u32)0x08060000) //扇区7起始地址, 128 Kbytes | |
| 21 | -#define ADDR_FLASH_SECTOR_8 ((u32)0x08080000) //扇区8起始地址, 128 Kbytes | |
| 22 | -#define ADDR_FLASH_SECTOR_9 ((u32)0x080A0000) //扇区9起始地址, 128 Kbytes | |
| 23 | -#define ADDR_FLASH_SECTOR_10 ((u32)0x080C0000) //扇区10起始地址,128 Kbytes | |
| 24 | -#define ADDR_FLASH_SECTOR_11 ((u32)0x080E0000) //扇区11起始地址,128 Kbytes | |
| 12 | +#define ADDR_FLASH_SECTOR_4 ((uint32_t)0x08010000) //扇区4起始地址, 64 Kbytes | |
| 25 | 13 | |
| 14 | +#define ADDR_FLASH_SECTOR_5 ((uint32_t)0x08020000) //扇区5起始地址, 128 Kbytes | |
| 15 | +#define ADDR_FLASH_SECTOR_6 ((uint32_t)0x08040000) //扇区6起始地址, 128 Kbytes | |
| 16 | +#define ADDR_FLASH_SECTOR_7 ((uint32_t)0x08060000) //扇区7起始地址, 128 Kbytes | |
| 17 | +#define ADDR_FLASH_SECTOR_8 ((uint32_t)0x08080000) //扇区8起始地址, 128 Kbytes | |
| 18 | +#define ADDR_FLASH_SECTOR_9 ((uint32_t)0x080A0000) //扇区9起始地址, 128 Kbytes | |
| 19 | +#define ADDR_FLASH_SECTOR_10 ((uint32_t)0x080C0000) //扇区10起始地址,128 Kbytes | |
| 20 | +#define ADDR_FLASH_SECTOR_11 ((uint32_t)0x080E0000) //扇区11起始地址,128 Kbytes | |
| 26 | 21 | |
| 27 | 22 | |
| 28 | 23 | |
| 24 | +uint32_t STM_FLASH_Erase(uint32_t addrx); | |
| 29 | 25 | |
| 30 | -void flash_write(u32 addr,u16 data); | |
| 31 | -u16 flash_read(u32 addr); | |
| 32 | -void flash_erase(u32 addrx); | |
| 33 | -void flash_write_string(u32 addr,u16* buff,u16 length); | |
| 34 | -void flash_read_string(u32 addr,u16 *rbuff,u16 length); | |
| 26 | +void flash_write(uint32_t addr,uint16_t data); | |
| 27 | +uint16_t flash_read(uint32_t addr); | |
| 28 | +void flash_erase(uint32_t addrx); | |
| 29 | +void flash_write_string(uint32_t addr,uint16_t* buff,uint16_t length); | |
| 30 | +void flash_read_string(uint32_t addr,uint16_t *rbuff,uint16_t length); | |
| 35 | 31 | |
| 36 | -u16 STMFLASH_GetFlashSector(u32 addr); | |
| 37 | -u32 STMFLASH_ReadWord(u32 faddr); //读出字 | |
| 38 | -void STMFLASH_Write(u32 WriteAddr,u32 *pBuffer,u32 NumToWrite); //从指定地址开始写入指定长度的数据 | |
| 39 | -void STMFLASH_Read(u32 ReadAddr,u32 *pBuffer,u32 NumToRead); //从指定地址开始读出指定长度的数据 | |
| 32 | +uint32_t STM_FLASH_Get_Block_Size(uint32_t addrx); | |
| 33 | +uint16_t STMFLASH_GetFlashSector(uint32_t addr); | |
| 34 | +uint32_t STMFLASH_ReadWord(uint32_t faddr); //读出字 | |
| 35 | +uint32_t STMFLASH_Write(uint32_t WriteAddr,uint32_t *pBuffer,uint32_t NumToWrite); //从指定地址开始写入指定长度的数据 | |
| 36 | +void STMFLASH_Read(uint32_t ReadAddr,uint32_t *pBuffer,uint32_t NumToRead); //从指定地址开始读出指定长度的数据 | |
| 40 | 37 | |
| 41 | 38 | |
| 42 | 39 | #endif | ... | ... |
HARDWARE/LED/led.c
| 1 | 1 | #include "led.h" |
| 2 | -////////////////////////////////////////////////////////////////////////////////// | |
| 3 | -//本程序只供学习使用,未经作者许可,不得用于其它任何用途 | |
| 4 | -//ALIENTEK STM32F407开发板 | |
| 5 | -//LED驱动代码 | |
| 6 | -//正点原子@ALIENTEK | |
| 7 | -//技术论坛:www.openedv.com | |
| 8 | -//创建日期:2014/5/2 | |
| 9 | -//版本:V1.0 | |
| 10 | -//版权所有,盗版必究。 | |
| 11 | -//Copyright(C) 广州市星翼电子科技有限公司 2014-2024 | |
| 12 | -//All rights reserved | |
| 13 | -////////////////////////////////////////////////////////////////////////////////// | |
| 14 | - | |
| 15 | -//初始化PF9和PF10为输出口.并使能这两个口的时钟 | |
| 16 | -//LED IO初始化 | |
| 17 | 2 | void LED_Init(void) |
| 18 | 3 | { |
| 19 | 4 | GPIO_InitTypeDef GPIO_InitStructure; |
| 20 | - | |
| 21 | - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟 | |
| 22 | - | |
| 5 | + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOF时钟 | |
| 23 | 6 | //GPIOF9,F10初始化设置 |
| 24 | - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; | |
| 7 | + GPIO_InitStructure.GPIO_Pin = ARM_LED1_Pin; | |
| 25 | 8 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式 |
| 26 | 9 | GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出 |
| 27 | 10 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz |
| 28 | 11 | GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉 |
| 29 | - GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化 | |
| 30 | - | |
| 31 | - GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);//GPIOF9,F10设置高,灯灭 | |
| 32 | - | |
| 33 | -} | |
| 34 | - | |
| 12 | + GPIO_Init(ARM_LED1_Port, &GPIO_InitStructure);//初始化 | |
| 35 | 13 | |
| 14 | + GPIO_ResetBits(ARM_LED1_Port,ARM_LED1_Pin);//GPIOF9,F10设置高,灯灭 | |
| 36 | 15 | |
| 16 | + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);//使能GPIOF时钟 | |
| 37 | 17 | |
| 18 | + //GPIOF9,F10初始化设置 | |
| 19 | + GPIO_InitStructure.GPIO_Pin = ARM_LED2_Pin|ARM_LED3_Pin|ARM_LED4_Pin; | |
| 20 | + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式 | |
| 21 | + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出 | |
| 22 | + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz | |
| 23 | + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉 | |
| 24 | + GPIO_Init(ARM_LED2_Port, &GPIO_InitStructure);//初始化 | |
| 38 | 25 | |
| 26 | + GPIO_ResetBits(ARM_LED2_Port,ARM_LED2_Pin);//GPIOF9,F10设置高,灯灭 | |
| 27 | + GPIO_ResetBits(ARM_LED3_Port,ARM_LED3_Pin);//GPIOF9,F10设置高,灯灭 | |
| 28 | + GPIO_ResetBits(ARM_LED4_Port,ARM_LED4_Pin);//GPIOF9,F10设置高,灯灭 | |
| 39 | 29 | |
| 30 | +} | ... | ... |
HARDWARE/LED/led.h
| 1 | 1 | #ifndef __LED_H |
| 2 | 2 | #define __LED_H |
| 3 | -#include "sys.h" | |
| 4 | - | |
| 3 | +#include "dev.h" | |
| 5 | 4 | ////////////////////////////////////////////////////////////////////////////////// |
| 6 | 5 | //本程序只供学习使用,未经作者许可,不得用于其它任何用途 |
| 7 | 6 | //ALIENTEK STM32F407开发板 |
| ... | ... | @@ -15,10 +14,6 @@ |
| 15 | 14 | //All rights reserved |
| 16 | 15 | ////////////////////////////////////////////////////////////////////////////////// |
| 17 | 16 | |
| 18 | - | |
| 19 | -//LED端口定义 | |
| 20 | -#define LED0 PFout(9) // DS0 | |
| 21 | -#define LED1 PFout(10) // DS1 | |
| 22 | - | |
| 23 | -void LED_Init(void);//初始化 | |
| 17 | +void LED_Init(void);//初始化 | |
| 18 | + | |
| 24 | 19 | #endif | ... | ... |
IAP/iap.c
| 1 | 1 | #include "iap.h" |
| 2 | -#include "usart.h" | |
| 3 | 2 | #include "crc.h" |
| 4 | 3 | #include "flash.h" |
| 5 | 4 | #include "delay.h" |
| 6 | 5 | #include "usart1.h" |
| 7 | 6 | #include "uart5.h" |
| 8 | - | |
| 7 | +#include "ymodem.h" | |
| 8 | +#include "string.h" | |
| 9 | 9 | iapfun jump2app; |
| 10 | 10 | |
| 11 | - | |
| 12 | -//跳转到应用程序段 | |
| 13 | -//appxaddr:用户代码起始地址. | |
| 14 | -void Run_Flash_App(u32 appxaddr) | |
| 11 | +extern USART_TypeDef * IAP_Port; | |
| 12 | + | |
| 13 | +#define SEPERATE "\r\n***********************wisefarm bootloader***********************\r\n\r\n" | |
| 14 | +#define WELCOME "Wisefarm bootloader start.....\r\n" | |
| 15 | +#define END "Wisefarm bootloader end.....\r\n" | |
| 16 | +#define VERSION "Version: MFGW2.0\r\n" | |
| 17 | +#define RUN_POINT "App will be running.....\r\n" | |
| 18 | +#define INPUT_PONIT "Press down key \"B\" at least 2S to s in bootloader\r\n" | |
| 19 | +#define CUTDOWN_PONIT "Run application after %d second(s)......\r\n" | |
| 20 | +uint8_t Run_Flash_App(u32 appxaddr) | |
| 15 | 21 | { |
| 16 | 22 | if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000) //检查栈顶地址是否合法. |
| 17 | - { | |
| 23 | + { | |
| 24 | + | |
| 25 | + display_bootloader_exit_information(); | |
| 18 | 26 | jump2app=(iapfun)*(vu32*)(appxaddr+4); //用户代码区第二个字为程序开始地址(复位地址) |
| 19 | 27 | MSR_MSP(*(vu32*)appxaddr); //初始化APP堆栈指针(用户代码区的第一个字用于存放栈顶地址) |
| 20 | 28 | jump2app(); //跳转到APP. |
| 29 | + return 1; | |
| 21 | 30 | } |
| 22 | -} | |
| 23 | - | |
| 24 | - | |
| 25 | - | |
| 26 | - | |
| 27 | - | |
| 28 | - | |
| 29 | - | |
| 30 | - | |
| 31 | - | |
| 32 | - | |
| 33 | - | |
| 34 | - | |
| 35 | -/**************************************************** | |
| 36 | -* @brief: 通过RS485接口,本地下载固件 | |
| 37 | -* @param: | |
| 38 | -* @retva: | |
| 39 | -* @note: | |
| 40 | -******************************************************/ | |
| 41 | -uint8_t Success[] = "FireWare Check Success\r\n"; | |
| 42 | -uint8_t Fail[] = "FireWare Check Fail\r\n"; | |
| 43 | -uint8_t Incorrect[] = "Input Command Incorrect\r\n"; | |
| 44 | - | |
| 45 | -uint8_t Manual_Labal[] = "CMD Description\r\n"; | |
| 46 | -uint8_t Manual_Start[] = "START Start Up Transmit FireWare\r\n"; | |
| 47 | -uint8_t Manual_Ack[] = "ACK: Confirm The FireWare\r\n"; | |
| 48 | -uint8_t Manual_Cancel[] = "CANCEL Cancel The Update Program\r\n"; | |
| 49 | -uint8_t Manual_Line[] = "\r\n*******************************************\r\n"; | |
| 50 | - | |
| 51 | -uint8_t Ok[] = "OK\r\n"; | |
| 52 | - | |
| 53 | -void Local_Update(void) | |
| 31 | + else | |
| 32 | + { | |
| 33 | + return 0; | |
| 34 | + } | |
| 35 | +} | |
| 36 | +void display_bootloader_extry_information(void) | |
| 54 | 37 | { |
| 55 | - Clear_Uart5_Cache(); | |
| 56 | - | |
| 57 | - uint16_t crc = 0xFFFF; | |
| 58 | - uint32_t handle; | |
| 38 | + GPIO_ResetBits(ARM_LED1_Port,ARM_LED1_Pin); | |
| 39 | + GPIO_ResetBits(ARM_LED2_Port,ARM_LED2_Pin);//GPIOF9,F10设置高,灯灭 | |
| 40 | + GPIO_ResetBits(ARM_LED3_Port,ARM_LED3_Pin);//GPIOF9,F10设置高,灯灭 | |
| 41 | + GPIO_ResetBits(ARM_LED4_Port,ARM_LED4_Pin);//GPIOF9,F10设置高,灯灭 | |
| 59 | 42 | |
| 60 | - delay_ms(70); | |
| 61 | - Uart5_Send(Manual_Line,sizeof(Manual_Line)); | |
| 62 | - delay_ms(70); | |
| 63 | - Uart5_Send(Manual_Labal,sizeof(Manual_Labal)); | |
| 64 | - delay_ms(70); | |
| 65 | - Uart5_Send(Manual_Start,sizeof(Manual_Start)); | |
| 66 | - delay_ms(70); | |
| 67 | - Uart5_Send(Manual_Ack,sizeof(Manual_Ack)); | |
| 68 | - delay_ms(70); | |
| 69 | - Uart5_Send(Manual_Cancel,sizeof(Manual_Cancel)); | |
| 70 | - delay_ms(70); | |
| 71 | - Uart5_Send(Manual_Line,sizeof(Manual_Line)); | |
| 43 | + printf(SEPERATE); | |
| 44 | + printf(WELCOME); | |
| 45 | + printf(VERSION); | |
| 72 | 46 | |
| 47 | +} | |
| 48 | +void display_bootloader_exit_information(void) | |
| 49 | +{ | |
| 50 | + GPIO_SetBits(ARM_LED1_Port,ARM_LED1_Pin); | |
| 51 | + GPIO_SetBits(ARM_LED2_Port,ARM_LED2_Pin);//GPIOF9,F10设置高,灯灭 | |
| 52 | + GPIO_SetBits(ARM_LED3_Port,ARM_LED3_Pin);//GPIOF9,F10设置高,灯灭 | |
| 53 | + GPIO_SetBits(ARM_LED4_Port,ARM_LED4_Pin);//GPIOF9,F10设置高,灯灭 | |
| 54 | + printf(RUN_POINT); | |
| 55 | + printf(END); | |
| 56 | + printf(SEPERATE); | |
| 57 | +} | |
| 58 | +uint8_t uart_boot_detect(void) | |
| 59 | +{ | |
| 60 | + uint8_t retry_cnt=0; | |
| 61 | + | |
| 62 | + char buf_rx5[20]={0}; | |
| 63 | + char buf_rx1[20]={0}; | |
| 64 | + printf(INPUT_PONIT); | |
| 73 | 65 | |
| 74 | - while(1) | |
| 66 | + for(retry_cnt=0;retry_cnt<LOCAL_WAITE_TIME;retry_cnt++) | |
| 75 | 67 | { |
| 76 | - if(UART_FINISH) | |
| 68 | + printf(CUTDOWN_PONIT,LOCAL_WAITE_TIME-retry_cnt); | |
| 69 | + | |
| 70 | + uint32_t timeout =0x100000; | |
| 71 | + | |
| 72 | + memset(buf_rx5,0,sizeof(char)); | |
| 73 | + memset(buf_rx1,0,sizeof(char)); | |
| 74 | + uint8_t i=0,j=0; | |
| 75 | + while (timeout-- > 0) | |
| 77 | 76 | { |
| 78 | - if(strncmp((char *)UART_RX_BUF,"ACK",sizeof("ACK")) == 0) //确认数据 | |
| 79 | - { | |
| 80 | - Uart5_Send(Ok,sizeof(Ok)); | |
| 81 | - handle = BOOTLOADER_RUN; | |
| 82 | - STMFLASH_Write(FLAG_BASE_ADDR,(uint32_t *)&handle,4); | |
| 83 | - } | |
| 84 | - else if(strncmp((char *)UART_RX_BUF,"START",sizeof("START")) == 0) //启动传输 | |
| 85 | - { | |
| 86 | - Uart5_Send(Ok,sizeof(Ok)); | |
| 87 | - Clear_Uart5_Cache(); | |
| 88 | - UART_FINISH = false; | |
| 89 | - | |
| 90 | - while(UART_FINISH != true); | |
| 91 | - | |
| 92 | - printf("receive %d Bytes msg\r\n",&UART_RX_CNT); | |
| 93 | - Uart5_Send(Ok,sizeof(Ok)); | |
| 94 | - | |
| 95 | - crc = GenerateCRC16(UART_RX_BUF,UART_RX_CNT-2); | |
| 96 | - printf("CACL = %x\r\n",crc); | |
| 77 | + if (uart5_read_byte((uint8_t *)&buf_rx5[i]) == 1) | |
| 78 | + { | |
| 79 | + i++; | |
| 80 | + if(i>20) | |
| 81 | + { | |
| 82 | + i=0; | |
| 83 | + } | |
| 97 | 84 | |
| 98 | - if(crc == ((UART_RX_BUF[UART_RX_CNT-2] << 8 ) | UART_RX_BUF[UART_RX_CNT-1])) | |
| 85 | + if((strcmp(buf_rx5,"BBBBBBBBBBBBBBBBBBBB"))==0) | |
| 99 | 86 | { |
| 100 | - STMFLASH_Write(APP_RUN_ADDR,(uint32_t *)UART_RX_BUF,UART_RX_CNT - 2); | |
| 101 | - | |
| 102 | - Uart5_Send(Success,sizeof(Success)); | |
| 87 | + IAP_Port=UART5; | |
| 88 | + return LOCAL_BOOT_FROM_UART5; | |
| 103 | 89 | } |
| 104 | - else | |
| 90 | + } | |
| 91 | + if (usart1_read_byte((uint8_t *)&buf_rx1[j]) == 1) | |
| 92 | + { | |
| 93 | + j++; | |
| 94 | + if(i>20) | |
| 105 | 95 | { |
| 106 | - Uart5_Send(Fail,sizeof(Fail)); | |
| 96 | + i=0; | |
| 97 | + } | |
| 98 | + | |
| 99 | + if((strcmp(buf_rx1,"BBBBBBBBBBBBBBBBBBBB"))==0) | |
| 100 | + { | |
| 101 | + IAP_Port=USART1; | |
| 102 | + return LOCAL_BOOT_FROM_USART1; | |
| 107 | 103 | } |
| 108 | - printf("CRC = %x\r\n",crc); | |
| 109 | - } | |
| 110 | - else if(strncmp((char *)UART_RX_BUF,"CANCEL",sizeof("CANCEL")) == 0 ) //返回 | |
| 111 | - { | |
| 112 | - Uart5_Send(Ok,sizeof(Ok)); | |
| 113 | - break; | |
| 114 | - } | |
| 115 | - else | |
| 116 | - { | |
| 117 | - Uart5_Send(Incorrect,sizeof(Incorrect)); | |
| 118 | - } | |
| 119 | - | |
| 120 | - Clear_Uart5_Cache(); | |
| 121 | - UART_FINISH = false; | |
| 122 | - UART5_Mode(RS485_READ); | |
| 104 | + } | |
| 123 | 105 | } |
| 106 | + | |
| 124 | 107 | } |
| 108 | + return LOCAL_BOOT_NONE; | |
| 125 | 109 | } |
| 126 | - | |
| 127 | - | |
| 128 | - | |
| 129 | - | |
| 130 | -/****************************************************** | |
| 131 | -* @brief: 检测是否有触发本地升级 | |
| 132 | -* @param: | |
| 133 | -* @retva: | |
| 134 | -* @note: | |
| 135 | -********************************************************/ | |
| 136 | -uint8_t Update[] = "Enter Local Update\r\n"; | |
| 137 | -void Detection_Update(void) | |
| 110 | +void uart_boot(void) | |
| 138 | 111 | { |
| 139 | - uint8_t i ; | |
| 140 | - | |
| 141 | - for(i=0;i<WAIT_TIME;i++) | |
| 142 | - { | |
| 143 | - delay_ms(1000); | |
| 144 | - if(UART_FINISH) | |
| 112 | + uint32_t ret =0; | |
| 113 | + printf("Enter bootloader......\r\n"); | |
| 114 | + if(IAP_Port==USART1) | |
| 145 | 115 | { |
| 146 | - UART_FINISH= false; | |
| 147 | - if(strncmp((char *)UART_RX_BUF,"UPDATE",sizeof("UPDATE")) == 0)//F12 | |
| 148 | - { | |
| 149 | - Uart5_Send(Update,sizeof(Update)); | |
| 150 | - Local_Update(); | |
| 151 | - break; | |
| 152 | - } | |
| 116 | + printf("Port:USART1\tbaudrate:115200\t\tformat:N-8-1\r\n"); | |
| 153 | 117 | } |
| 154 | - } | |
| 155 | -} | |
| 156 | - | |
| 157 | -#define VERSION "Bootloader version: MFGW2.0\r\n" | |
| 158 | - | |
| 159 | -uint8_t uart_boot_detect(void) | |
| 160 | -{ | |
| 161 | - uint8_t retry_cnt=0; | |
| 162 | - printf(WELCOME); | |
| 163 | - printf(VERSION); | |
| 164 | - for(retry_cnt=0;retry_cnt<LOCAL_WAITE_TIME;retry_cnt++) | |
| 165 | - { | |
| 166 | - printf("Run application after %d second(s)...........\r\n",LOCAL_WAITE_TIME-retry_cnt); | |
| 167 | - printf("Input any key and Enter to stay in bootloader\r\n"); | |
| 168 | - delay_ms(1000); | |
| 169 | - | |
| 170 | - if((u5.rx_status == RX_FINISHED)&& | |
| 171 | - ((u5.rx_buf[0]=='b')||(u5.rx_buf[0]=='B'))&& | |
| 172 | - (u5.rx_len == 2)) | |
| 118 | + else | |
| 173 | 119 | { |
| 174 | - return LOCAL_BOOT_FROM_UART5; | |
| 120 | + printf("Port:UART5\tbaudrate:115200\t\tformat:N-8-1\r\n"); | |
| 175 | 121 | } |
| 176 | - else if((u1.rx_status == RX_FINISHED)&& | |
| 177 | - ((u1.rx_buf[0]=='b')||(u1.rx_buf[0]=='B'))&& | |
| 178 | - (u1.rx_len == 2)) | |
| 122 | + | |
| 123 | + printf("please send file to device in y-modem!\r\n"); | |
| 124 | + | |
| 125 | + printf("Waiting:"); | |
| 126 | + ret = Ymodem_Receive(buf_1k,APP_LOAD_ADDR); | |
| 127 | + printf("\r\n"); | |
| 128 | + | |
| 129 | + if(ret >0) | |
| 179 | 130 | { |
| 180 | - return LOCAL_BOOT_FROM_USART1; | |
| 131 | + printf("Received file name:\t\t\t\t%s\r\n",FileName); | |
| 132 | + printf("Received file length:\t\t\t\t%s\r\n",file_size); | |
| 181 | 133 | } |
| 182 | 134 | else |
| 183 | 135 | { |
| 184 | - // not detected | |
| 136 | + printf("Failure of ymodem receive!\r\n"); | |
| 137 | + assert_param(0); | |
| 185 | 138 | } |
| 186 | - } | |
| 187 | - return LOCAL_BOOT_NONE; | |
| 139 | + load_process(); | |
| 188 | 140 | } |
| 141 | +void load_process(void) | |
| 142 | +{ | |
| 189 | 143 | |
| 144 | + uint32_t flag =0; | |
| 190 | 145 | |
| 191 | - | |
| 192 | - | |
| 146 | + printf("Fireware detected,now loading...\r\n"); | |
| 147 | + printf("Erasing!\t\t\t\t\t"); | |
| 148 | + if(0 == STM_FLASH_Erase(APP_RUN_ADDR)) | |
| 149 | + { | |
| 150 | + printf("failure\r\n"); | |
| 151 | + assert_param(0); | |
| 152 | + } | |
| 153 | + if(0 == STM_FLASH_Erase(FLAG_BASE_ADDR)) | |
| 154 | + { | |
| 155 | + printf("failure\r\n"); | |
| 156 | + assert_param(0); | |
| 157 | + } | |
| 158 | + printf("success\r\n"); | |
| 159 | + printf("Programing !\t\t\t\t\t"); | |
| 160 | + if(1 == STMFLASH_Write(APP_RUN_ADDR,(uint32_t *)APP_LOAD_ADDR,STM_FLASH_Get_Block_Size(APP_RUN_ADDR))) | |
| 161 | + { | |
| 162 | + printf("failure!\r\n"); | |
| 163 | + assert_param(0); | |
| 164 | + } | |
| 165 | + flag =BOOTLOADER_RUN; | |
| 166 | + if(1 == STMFLASH_Write(FLAG_BASE_ADDR,&flag,4)) | |
| 167 | + { | |
| 168 | + printf("failure!\r\n"); | |
| 169 | + assert_param(0); | |
| 170 | + } | |
| 171 | + printf("success\r\n"); | |
| 172 | + | |
| 173 | + app_run(); | |
| 174 | +} | |
| 175 | +void app_run(void) | |
| 176 | +{ | |
| 177 | + if(0==Run_Flash_App(APP_RUN_ADDR)) | |
| 178 | + { | |
| 179 | + printf("Run app failure!the firmware may be damaged!\r\n"); | |
| 180 | + uart_boot(); | |
| 181 | + } | |
| 182 | +} | |
| 193 | 183 | ... | ... |
IAP/iap.h
| ... | ... | @@ -2,21 +2,28 @@ |
| 2 | 2 | #define __IAP_H__ |
| 3 | 3 | #include "dev.h" |
| 4 | 4 | |
| 5 | -#define WAIT_TIME 5 //秒 | |
| 6 | - | |
| 7 | -typedef void (*iapfun)(void); //定义一个函数类型的参数. | |
| 5 | +#define LOCAL_WAITE_TIME 8 //秒 | |
| 6 | +uint8_t uart_boot_detect(void); | |
| 7 | +void uart_boot(void); | |
| 8 | +void load_process(void); | |
| 9 | +void app_run(void); | |
| 8 | 10 | |
| 9 | 11 | |
| 10 | -void Run_Flash_App(uint32_t appxaddr); //跳转到APP程序执行 | |
| 12 | +typedef void (*iapfun)(void); //定义一个函数类型的参数. | |
| 11 | 13 | |
| 12 | -//void Local_Update(void); | |
| 13 | -void Detection_Update(void); | |
| 14 | 14 | |
| 15 | +uint8_t Run_Flash_App(uint32_t appxaddr); //跳转到APP程序执行 | |
| 15 | 16 | |
| 17 | +//void Local_Update(void); | |
| 18 | +void Detection_Update(void); | |
| 19 | +void display_bootloader_exit_information(void); | |
| 20 | +void display_bootloader_extry_information(void); | |
| 16 | 21 | |
| 17 | 22 | #define LOCAL_BOOT_FROM_UART5 2 |
| 18 | 23 | #define LOCAL_BOOT_FROM_USART1 1 |
| 19 | 24 | #define LOCAL_BOOT_NONE 0 |
| 20 | 25 | |
| 26 | +//#define USER_FLASH_SIZE (192*1024) | |
| 27 | + | |
| 21 | 28 | #endif |
| 22 | 29 | ... | ... |
IAP/ymodem.c
0 → 100644
| 1 | +#include "ymodem.h" | |
| 2 | +#include "string.h" | |
| 3 | +#include "stdlib.h" | |
| 4 | +#include "flash.h" | |
| 5 | +#include "usart1.h" | |
| 6 | +#include "uart5.h" | |
| 7 | +#include "delay.h" | |
| 8 | + | |
| 9 | +USART_TypeDef * IAP_Port = UART5; | |
| 10 | + | |
| 11 | +uint8_t FileName[FILE_NAME_LENGTH];//array to store filename of download *.bin | |
| 12 | +char file_size[FILE_SIZE_LENGTH]; | |
| 13 | +uint8_t buf_1k[1024] ={0}; | |
| 14 | + | |
| 15 | +/********************************************/ | |
| 16 | +//移植的时候,由于函数定义了局部大数组,需要修改堆栈的大小。 | |
| 17 | +//下面是需要移植的函数 | |
| 18 | +static uint32_t SerialKeyPressed(uint8_t *key); | |
| 19 | +static int32_t Receive_Byte(uint8_t *c, uint32_t timeout); | |
| 20 | +int32_t Ymodem_Receive (uint8_t *buf, uint32_t appaddr); | |
| 21 | +uint32_t STM_FLASH_Erase(uint32_t addrx); | |
| 22 | +uint32_t STM_FLASH_Get_Block_Size(uint32_t addrx); | |
| 23 | +uint32_t STMFLASH_Write(u32 WriteAddr,u32 *pBuffer,u32 NumToWrite); | |
| 24 | +/********************************************/ | |
| 25 | + | |
| 26 | +//check if one byte rx successfully | |
| 27 | +//key: variabl to store rx data | |
| 28 | +//return: 1=success, 0=fail | |
| 29 | +static uint32_t SerialKeyPressed(uint8_t *key) | |
| 30 | +{ | |
| 31 | + if(IAP_Port == UART5) | |
| 32 | + { | |
| 33 | + return uart5_read_byte(key); | |
| 34 | + } | |
| 35 | + else | |
| 36 | + { | |
| 37 | + return usart1_read_byte(key); | |
| 38 | + } | |
| 39 | +} | |
| 40 | +//Rx a byte from sender | |
| 41 | +//c: variable to store data | |
| 42 | +//timeout: read time out | |
| 43 | +//return: 0=success, -1=fail | |
| 44 | +static int32_t Receive_Byte (uint8_t *c, uint32_t timeout) | |
| 45 | +{ | |
| 46 | + while (timeout-- > 0) | |
| 47 | + { | |
| 48 | + if (SerialKeyPressed(c) == 1) | |
| 49 | + { | |
| 50 | + return 0; | |
| 51 | + } | |
| 52 | + } | |
| 53 | + return -1; | |
| 54 | +} | |
| 55 | +//send a byte via IAP_Port | |
| 56 | +//c: byte to send | |
| 57 | +//return: 0 | |
| 58 | +static uint32_t Send_Byte (uint8_t c) | |
| 59 | +{ | |
| 60 | + if(IAP_Port == UART5) | |
| 61 | + { | |
| 62 | + uart5_send_byte(c); | |
| 63 | + } | |
| 64 | + else | |
| 65 | + { | |
| 66 | + usart1_send_byte(c); | |
| 67 | + } | |
| 68 | + return 0; | |
| 69 | +} | |
| 70 | +/** | |
| 71 | + * @brief Update CRC16 for input byte | |
| 72 | + * @param crc_in input value | |
| 73 | + * @param input byte | |
| 74 | + * @retval None | |
| 75 | + */ | |
| 76 | +uint16_t UpdateCRC16(uint16_t crc_in, uint8_t byte) | |
| 77 | +{ | |
| 78 | + uint32_t crc = crc_in; | |
| 79 | + uint32_t in = byte | 0x100; | |
| 80 | + | |
| 81 | + do | |
| 82 | + { | |
| 83 | + crc <<= 1; | |
| 84 | + in <<= 1; | |
| 85 | + if(in & 0x100) | |
| 86 | + ++crc; | |
| 87 | + if(crc & 0x10000) | |
| 88 | + crc ^= 0x1021; | |
| 89 | + } | |
| 90 | + | |
| 91 | + while(!(in & 0x10000)); | |
| 92 | + | |
| 93 | + return crc & 0xffffu; | |
| 94 | +} | |
| 95 | + | |
| 96 | +/** | |
| 97 | + * @brief Cal CRC16 for YModem Packet | |
| 98 | + * @param data | |
| 99 | + * @param length | |
| 100 | + * @retval None | |
| 101 | + */ | |
| 102 | +uint16_t Cal_CRC16(const uint8_t* p_data, uint32_t size) | |
| 103 | +{ | |
| 104 | + uint32_t crc = 0; | |
| 105 | + const uint8_t* dataEnd = p_data+size; | |
| 106 | + | |
| 107 | + while(p_data < dataEnd) | |
| 108 | + crc = UpdateCRC16(crc, *p_data++); | |
| 109 | + | |
| 110 | + crc = UpdateCRC16(crc, 0); | |
| 111 | + crc = UpdateCRC16(crc, 0); | |
| 112 | + | |
| 113 | + return crc&0xffffu; | |
| 114 | +} | |
| 115 | + | |
| 116 | +//Rx a packet from sender | |
| 117 | +//data: pointer to store rx data | |
| 118 | +//length: packet length | |
| 119 | +//timeout: rx time out | |
| 120 | +//return:0=normally return | |
| 121 | +// -1=timeout or packet error | |
| 122 | +// 1=abort by user | |
| 123 | +static int32_t Receive_Packet (uint8_t *data, int32_t *length, uint32_t timeout) | |
| 124 | +{ | |
| 125 | + uint16_t i, packet_size; | |
| 126 | + uint8_t c; | |
| 127 | + uint32_t crc=0; | |
| 128 | + | |
| 129 | + *length = 0; | |
| 130 | + if (Receive_Byte(&c, timeout) != 0) | |
| 131 | + { | |
| 132 | + return -1; | |
| 133 | + } | |
| 134 | + switch (c) | |
| 135 | + { | |
| 136 | + case SOH: | |
| 137 | + packet_size = PACKET_SIZE; | |
| 138 | + break; | |
| 139 | + case STX: | |
| 140 | + packet_size = PACKET_1K_SIZE; | |
| 141 | + break; | |
| 142 | + case EOT: | |
| 143 | + return 0; | |
| 144 | + case CA: | |
| 145 | + if ((Receive_Byte(&c, timeout) == 0) && (c == CA)) | |
| 146 | + { | |
| 147 | + *length = -1; | |
| 148 | + return 0; | |
| 149 | + } | |
| 150 | + else | |
| 151 | + { | |
| 152 | + return -1; | |
| 153 | + } | |
| 154 | + case ABORT1: | |
| 155 | + case ABORT2: | |
| 156 | + return 1; | |
| 157 | + default: | |
| 158 | + return -1; | |
| 159 | + } | |
| 160 | + | |
| 161 | + *data = c; | |
| 162 | + for (i = 1; i < (packet_size + PACKET_OVERHEAD); i ++) | |
| 163 | + { | |
| 164 | + if (Receive_Byte(data + i, timeout) != 0) | |
| 165 | + { | |
| 166 | + return -1; | |
| 167 | + } | |
| 168 | + } | |
| 169 | + | |
| 170 | + crc = data[ packet_size + PACKET_HEADER ] << 8; | |
| 171 | + crc += data[ packet_size + PACKET_HEADER + 1 ]; | |
| 172 | + if (Cal_CRC16(&data[PACKET_HEADER], packet_size) != crc ) | |
| 173 | + { | |
| 174 | + packet_size = 0; | |
| 175 | + return -1; | |
| 176 | + } | |
| 177 | + *length = packet_size; | |
| 178 | + return 0; | |
| 179 | +} | |
| 180 | + | |
| 181 | + | |
| 182 | +//Receive a file using the ymodem protocol | |
| 183 | +//buf: pointer for data storage | |
| 184 | +//appaddr: User Application address | |
| 185 | +//return: size of IAP file | |
| 186 | +int32_t Ymodem_Receive (uint8_t *buf, uint32_t appaddr) | |
| 187 | +{ | |
| 188 | + uint8_t packet_data[PACKET_1K_SIZE + PACKET_OVERHEAD], *file_ptr, *buf_ptr,flag_EOT; | |
| 189 | + int32_t i, packet_length, session_done, file_done, packets_received, errors, session_begin, size = 0; | |
| 190 | + uint32_t flashdestination, ramsource; | |
| 191 | + | |
| 192 | + //Initialize flashdestination variable | |
| 193 | + flashdestination = appaddr; | |
| 194 | + flag_EOT = 0; | |
| 195 | + for (session_done = 0, errors = 0, session_begin = 0; ;) | |
| 196 | + { | |
| 197 | + for (packets_received = 0, file_done = 0, buf_ptr = buf; ;) | |
| 198 | + { | |
| 199 | + switch (Receive_Packet(packet_data, &packet_length, NAK_TIMEOUT)) | |
| 200 | + { | |
| 201 | + case 0: | |
| 202 | + errors = 0; | |
| 203 | + switch (packet_length) | |
| 204 | + { | |
| 205 | + /* Abort by sender */ | |
| 206 | + case - 1: | |
| 207 | + Send_Byte(ACK); | |
| 208 | + return 0; | |
| 209 | + /* End of transmission */ | |
| 210 | + case 0: | |
| 211 | + if(flag_EOT==0) //first EOT | |
| 212 | + { | |
| 213 | + Send_Byte(NACK); | |
| 214 | + flag_EOT = 1; | |
| 215 | + } | |
| 216 | + else if (flag_EOT==1) //second EOT | |
| 217 | + { | |
| 218 | + Send_Byte(ACK); | |
| 219 | + Send_Byte('C'); | |
| 220 | + file_done = 1; | |
| 221 | + } | |
| 222 | + break; | |
| 223 | + /* Normal packet */ | |
| 224 | + default: | |
| 225 | + if ((packet_data[PACKET_SEQNO_INDEX] & 0xff) != (packets_received & 0xff)) | |
| 226 | + { | |
| 227 | + Send_Byte(NACK);//local data sequence number is different to rx data packet. | |
| 228 | + } | |
| 229 | + else | |
| 230 | + { | |
| 231 | + if (packets_received == 0) | |
| 232 | + { | |
| 233 | + /* Filename packet */ | |
| 234 | + if (packet_data[PACKET_HEADER] != 0) | |
| 235 | + { | |
| 236 | + /* Filename packet has valid data */ | |
| 237 | + for (i = 0, file_ptr = packet_data + PACKET_HEADER; (*file_ptr != 0) && (i < FILE_NAME_LENGTH);) | |
| 238 | + { | |
| 239 | + FileName[i++] = *file_ptr++; | |
| 240 | + } | |
| 241 | + FileName[i++] = '\0'; | |
| 242 | + | |
| 243 | + for (i = 0, file_ptr ++; (*file_ptr != ' ') && (i < FILE_SIZE_LENGTH);) | |
| 244 | + { | |
| 245 | + file_size[i++] = *file_ptr++; | |
| 246 | + } | |
| 247 | + file_size[i++] = '\0'; | |
| 248 | + size = atoi(file_size); | |
| 249 | + | |
| 250 | + /* Test the size of the image to be sent */ | |
| 251 | + /* Image size is greater than Flash size */ | |
| 252 | + if (size > (int32_t)(STM_FLASH_Get_Block_Size(flashdestination) + 1)) | |
| 253 | + { | |
| 254 | + /* End session */ | |
| 255 | + Send_Byte(CA); | |
| 256 | + Send_Byte(CA); | |
| 257 | + return -1; | |
| 258 | + } | |
| 259 | + /* erase user application area */ | |
| 260 | + | |
| 261 | + | |
| 262 | + STM_FLASH_Erase(flashdestination); | |
| 263 | + | |
| 264 | + Send_Byte(ACK); | |
| 265 | + Send_Byte(CRC16); | |
| 266 | + } | |
| 267 | + /* Filename packet is empty, end session */ | |
| 268 | + else | |
| 269 | + { | |
| 270 | + Send_Byte(ACK); | |
| 271 | + file_done = 1; | |
| 272 | + session_done = 1; | |
| 273 | + break; | |
| 274 | + } | |
| 275 | + } | |
| 276 | + /* Data packet */ | |
| 277 | + else | |
| 278 | + { | |
| 279 | + memcpy(buf_ptr, packet_data + PACKET_HEADER, packet_length); | |
| 280 | + ramsource = (uint32_t)buf_ptr; | |
| 281 | + | |
| 282 | + /* Write received data in Flash */ | |
| 283 | + if (STMFLASH_Write(flashdestination, (uint32_t*)ramsource, (uint16_t) packet_length) == 0) | |
| 284 | + { | |
| 285 | + flashdestination+=packet_length; | |
| 286 | + Send_Byte(ACK); | |
| 287 | + } | |
| 288 | + else /* An error occurred while writing to Flash memory */ | |
| 289 | + { | |
| 290 | + /* End session */ | |
| 291 | + Send_Byte(CA); | |
| 292 | + Send_Byte(CA); | |
| 293 | + return -2; | |
| 294 | + } | |
| 295 | + } | |
| 296 | + packets_received ++; | |
| 297 | + session_begin = 1; | |
| 298 | + } | |
| 299 | + } | |
| 300 | + break; | |
| 301 | + case 1: | |
| 302 | + Send_Byte(CA); | |
| 303 | + Send_Byte(CA); | |
| 304 | + return -3; | |
| 305 | + default: | |
| 306 | + if (session_begin > 0) | |
| 307 | + { | |
| 308 | + errors ++; | |
| 309 | + } | |
| 310 | + if (errors > MAX_ERRORS) | |
| 311 | + { | |
| 312 | + Send_Byte(CA); | |
| 313 | + Send_Byte(CA); | |
| 314 | + return 0; | |
| 315 | + } | |
| 316 | + Send_Byte(CRC16); | |
| 317 | + break; | |
| 318 | + } | |
| 319 | + if (file_done != 0) | |
| 320 | + { | |
| 321 | + break; | |
| 322 | + } | |
| 323 | + } | |
| 324 | + if (session_done != 0) | |
| 325 | + { | |
| 326 | + break; | |
| 327 | + } | |
| 328 | + } | |
| 329 | + return (int32_t)size; | |
| 330 | +} | ... | ... |
IAP/ymodem.h
0 → 100644
| 1 | +//Define to prevent recursive inclusion | |
| 2 | +#ifndef __YMODEM_H_ | |
| 3 | +#define __YMODEM_H_ | |
| 4 | +#include <stm32f4xx.h> | |
| 5 | +//Exported macro | |
| 6 | +#define PACKET_SEQNO_INDEX (1) | |
| 7 | +#define PACKET_SEQNO_COMP_INDEX (2) | |
| 8 | + | |
| 9 | +#define PACKET_HEADER (3) | |
| 10 | +#define PACKET_TRAILER (2) | |
| 11 | +#define PACKET_OVERHEAD (PACKET_HEADER + PACKET_TRAILER) | |
| 12 | +#define PACKET_SIZE (128) | |
| 13 | +#define PACKET_1K_SIZE (1024) | |
| 14 | + | |
| 15 | +#define FILE_NAME_LENGTH (256) | |
| 16 | +#define FILE_SIZE_LENGTH (16) | |
| 17 | + | |
| 18 | +#define SOH (0x01) /* start of 128-byte data packet */ | |
| 19 | +#define STX (0x02) /* start of 1024-byte data packet */ | |
| 20 | +#define EOT (0x04) /* end of transmission */ | |
| 21 | +#define ACK (0x06) /* acknowledge */ | |
| 22 | +#define NACK (0x15) /* negative acknowledge */ | |
| 23 | +#define CA (0x18) /* two of these in succession aborts transfer */ | |
| 24 | +#define CRC16 (0x43) /* 'C' == 0x43, request 16-bit CRC */ | |
| 25 | + | |
| 26 | +#define ABORT1 (0x41) /* 'A' == 0x41, abort by user */ | |
| 27 | +#define ABORT2 (0x61) /* 'a' == 0x61, abort by user */ | |
| 28 | + | |
| 29 | +#define NAK_TIMEOUT (0x50000) | |
| 30 | +#define MAX_ERRORS (5) | |
| 31 | + | |
| 32 | +//User Define Area | |
| 33 | + | |
| 34 | + | |
| 35 | +//Exported functions | |
| 36 | + | |
| 37 | +extern uint8_t FileName[FILE_NAME_LENGTH];//array to store filename of download *.bin | |
| 38 | +extern uint8_t buf_1k[1024]; | |
| 39 | +int32_t Ymodem_Receive (uint8_t *,uint32_t appaddr); | |
| 40 | +extern char file_size[FILE_SIZE_LENGTH]; | |
| 41 | +extern USART_TypeDef * IAP_Port; | |
| 42 | +#endif | ... | ... |
SYSTEM/delay/delay.c
| ... | ... | @@ -5,7 +5,7 @@ void delay_init(void) |
| 5 | 5 | { |
| 6 | 6 | RCC_ClocksTypeDef RCC_Clocks; |
| 7 | 7 | RCC_GetClocksFreq(&RCC_Clocks); |
| 8 | - SysTick_Config(RCC_Clocks.SYSCLK_Frequency/1000); | |
| 8 | + SysTick_Config(RCC_Clocks.SYSCLK_Frequency/10000); | |
| 9 | 9 | } |
| 10 | 10 | |
| 11 | 11 | |
| ... | ... | @@ -20,7 +20,7 @@ void delay_ms(uint32_t ms) |
| 20 | 20 | { |
| 21 | 21 | uint32_t curTick = mTick; |
| 22 | 22 | |
| 23 | - while((mTick - curTick) < ms); | |
| 23 | + while((mTick - curTick) < ms*10); | |
| 24 | 24 | } |
| 25 | 25 | |
| 26 | 26 | ... | ... |
SYSTEM/usart/debug.c
| 1 | 1 | #include "stdio.h" |
| 2 | +#include "dev.h" | |
| 2 | 3 | #include "usart1.h" |
| 3 | 4 | #include "uart5.h" |
| 4 | 5 | #if 1 |
| ... | ... | @@ -22,3 +23,11 @@ int fputc(int ch, FILE *f) //ÖØ¶¨Òåfputcº¯Êý |
| 22 | 23 | uart5_send_byte((uint8_t) ch); |
| 23 | 24 | return ch; |
| 24 | 25 | } |
| 26 | + | |
| 27 | +void assert_failed(u8* file, u32 line) | |
| 28 | +{ | |
| 29 | + printf("Wrong parameters value: file %s on line %d \r\n", file, line); | |
| 30 | + while (1) | |
| 31 | + { | |
| 32 | + } | |
| 33 | +} | ... | ... |
SYSTEM/usart/timer3.c deleted
| 1 | -#include "timer3.h" | |
| 2 | -Uart_Timer timer3; | |
| 3 | -static void TIM3_Init(uint16_t arr,uint16_t psc)//定时器2中断初始化 | |
| 4 | -{ | |
| 5 | - TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; | |
| 6 | - NVIC_InitTypeDef NVIC_InitStructure; | |
| 7 | - | |
| 8 | - RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);//TIM3时钟使能 | |
| 9 | - | |
| 10 | - TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 | |
| 11 | - TIM_TimeBaseStructure.TIM_Prescaler = psc; //设置用来作为TIMx时钟频率除数的预分频值 | |
| 12 | - TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim | |
| 13 | - TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式 | |
| 14 | - TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); | |
| 15 | - | |
| 16 | - TIM_ClearFlag(TIM3, TIM_FLAG_Update);//解决了定时器初始化后立即进入中断的bug(无论是否定时器启动)!!!!!!!!!!!!!!!!!!!! | |
| 17 | - | |
| 18 | - TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断 | |
| 19 | - | |
| 20 | - NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; | |
| 21 | - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //抢占优先级0 | |
| 22 | - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //子优先级2 | |
| 23 | - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 | |
| 24 | - NVIC_Init(&NVIC_InitStructure); | |
| 25 | - | |
| 26 | - TIM_Cmd(TIM3, DISABLE); //关闭TIM3 | |
| 27 | -} | |
| 28 | -static void TIM3_Start(void) | |
| 29 | -{ | |
| 30 | - TIM_Cmd(TIM3, ENABLE); //关闭TIM3 | |
| 31 | -} | |
| 32 | -static void TIM3_Stop(void) | |
| 33 | -{ | |
| 34 | - TIM_ClearITPendingBit(TIM3, TIM_IT_Update);//清除TIM3更新中断标志 | |
| 35 | - TIM_Cmd(TIM3, DISABLE); //关闭TIM3 | |
| 36 | -} | |
| 37 | -static void TIM3_Clear(void) | |
| 38 | -{ | |
| 39 | - TIM_SetCounter(TIM3,0);//计数器清空 | |
| 40 | -} | |
| 41 | -void timer3_init(void (*callback)()) | |
| 42 | -{ | |
| 43 | - timer3.callback =callback; | |
| 44 | - timer3.start=TIM3_Start; | |
| 45 | - timer3.stop=TIM3_Stop; | |
| 46 | - timer3.timeclear=TIM3_Clear; | |
| 47 | - | |
| 48 | - TIM3_Init(10*20-1,7200-1); //设置最大超时时间为40ms | |
| 49 | -} | |
| 50 | -void TIM3_IRQHandler(void)//定时器4中断服务程序 | |
| 51 | -{ | |
| 52 | - if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)//是更新中断 | |
| 53 | - { | |
| 54 | - timer3.stop(); | |
| 55 | - timer3.callback(); | |
| 56 | - } | |
| 57 | - else | |
| 58 | - { | |
| 59 | - } | |
| 60 | -} | |
| 61 | - | |
| 62 | - |
SYSTEM/usart/timer3.h deleted
SYSTEM/usart/timer4.c deleted
| 1 | -#include "timer4.h" | |
| 2 | -Uart_Timer timer4; | |
| 3 | -static void TIM4_Init(uint16_t arr,uint16_t psc)//定时器2中断初始化 | |
| 4 | -{ | |
| 5 | - TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; | |
| 6 | - NVIC_InitTypeDef NVIC_InitStructure; | |
| 7 | - | |
| 8 | - RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);//TIM4时钟使能 | |
| 9 | - | |
| 10 | - TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 | |
| 11 | - TIM_TimeBaseStructure.TIM_Prescaler = psc; //设置用来作为TIMx时钟频率除数的预分频值 | |
| 12 | - TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim | |
| 13 | - TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式 | |
| 14 | - TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); | |
| 15 | - | |
| 16 | - TIM_ClearFlag(TIM4, TIM_FLAG_Update);//解决了定时器初始化后立即进入中断的bug(无论是否定时器启动)!!!!!!!!!!!!!!!!!!!! | |
| 17 | - | |
| 18 | - TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE ); //使能指定的TIM4中断,允许更新中断 | |
| 19 | - | |
| 20 | - NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn; | |
| 21 | - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //抢占优先级0 | |
| 22 | - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //子优先级2 | |
| 23 | - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 | |
| 24 | - NVIC_Init(&NVIC_InitStructure); | |
| 25 | - | |
| 26 | - TIM_Cmd(TIM4, DISABLE); //关闭TIM4 | |
| 27 | -} | |
| 28 | -static void TIM4_Start(void) | |
| 29 | -{ | |
| 30 | - TIM_Cmd(TIM4, ENABLE); //关闭TIM4 | |
| 31 | -} | |
| 32 | -static void TIM4_Stop(void) | |
| 33 | -{ | |
| 34 | - TIM_ClearITPendingBit(TIM4, TIM_IT_Update);//清除TIM4更新中断标志 | |
| 35 | - TIM_Cmd(TIM4, DISABLE); //关闭TIM4 | |
| 36 | -} | |
| 37 | -static void TIM4_Clear(void) | |
| 38 | -{ | |
| 39 | - TIM_SetCounter(TIM4,0);//计数器清空 | |
| 40 | -} | |
| 41 | -void timer4_init(void (*callback)()) | |
| 42 | -{ | |
| 43 | - timer4.callback =callback; | |
| 44 | - timer4.start=TIM4_Start; | |
| 45 | - timer4.stop=TIM4_Stop; | |
| 46 | - timer4.timeclear=TIM4_Clear; | |
| 47 | - | |
| 48 | - TIM4_Init(10*20-1,7200-1); //设置最大超时时间为40ms | |
| 49 | -} | |
| 50 | -void TIM4_IRQHandler(void)//定时器4中断服务程序 | |
| 51 | -{ | |
| 52 | - if(TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET)//是更新中断 | |
| 53 | - { | |
| 54 | - timer4.stop(); | |
| 55 | - timer4.callback(); | |
| 56 | - } | |
| 57 | - else | |
| 58 | - { | |
| 59 | - } | |
| 60 | -} | |
| 61 | - | |
| 62 | - |
SYSTEM/usart/timer4.h deleted
SYSTEM/usart/uart5.c
| ... | ... | @@ -14,20 +14,6 @@ void uart5_init(void) |
| 14 | 14 | { |
| 15 | 15 | GPIO_InitTypeDef GPIO_InitStructure; |
| 16 | 16 | USART_InitTypeDef USART_InitStructure; |
| 17 | - NVIC_InitTypeDef NVIC_InitStructure; | |
| 18 | - | |
| 19 | - memset(UART5_RX_BUF,0,UART5_RX_MAX); | |
| 20 | - memset(UART5_TX_BUF,0,UART5_TX_MAX); | |
| 21 | - | |
| 22 | - u5.rx_buf=UART5_RX_BUF; | |
| 23 | - u5.tx_buf=UART5_TX_BUF; | |
| 24 | - u5.rx_len=0; | |
| 25 | - u5.tx_len=0; | |
| 26 | - u5.rx_status = RX_STA_RST; | |
| 27 | - u5.rxtimer = &timer4; | |
| 28 | - | |
| 29 | - timer4_init(uart5_rx_finished); | |
| 30 | - | |
| 31 | 17 | |
| 32 | 18 | RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOF,ENABLE); |
| 33 | 19 | RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5,ENABLE); |
| ... | ... | @@ -72,14 +58,6 @@ void uart5_init(void) |
| 72 | 58 | USART_Init(UART5, &USART_InitStructure); |
| 73 | 59 | |
| 74 | 60 | USART_Cmd(UART5, ENABLE); |
| 75 | - | |
| 76 | - USART_ITConfig(UART5, USART_IT_RXNE, ENABLE); | |
| 77 | - | |
| 78 | - NVIC_InitStructure.NVIC_IRQChannel = UART5_IRQn; | |
| 79 | - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 5; | |
| 80 | - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; | |
| 81 | - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; | |
| 82 | - NVIC_Init(&NVIC_InitStructure); | |
| 83 | 61 | } |
| 84 | 62 | void uart5_rx_mode(void) |
| 85 | 63 | { |
| ... | ... | @@ -95,7 +73,7 @@ void uart5_tx_mode(void) |
| 95 | 73 | void uart5_send_byte(uint8_t one_byte) |
| 96 | 74 | { |
| 97 | 75 | uart5_tx_mode(); |
| 98 | - while(USART_GetFlagStatus(UART5,USART_FLAG_TC)!=SET);//等待发送结束 | |
| 76 | + while(USART_GetFlagStatus(UART5,USART_FLAG_TXE)!=SET);//等待发送结束 | |
| 99 | 77 | USART_SendData(UART5,one_byte); //向串口3发送数据 |
| 100 | 78 | uart5_rx_mode(); |
| 101 | 79 | } |
| ... | ... | @@ -106,57 +84,16 @@ void uart5_send_bytes(uint8_t* buf,uint16_t length) |
| 106 | 84 | uart5_send_byte(buf[i]); |
| 107 | 85 | } |
| 108 | 86 | } |
| 109 | -void uart5_rx_reset(void) | |
| 110 | -{ | |
| 111 | - u5.rx_len=0; | |
| 112 | - memset(u5.rx_buf,0,UART5_RX_MAX);//接收缓存区清零 | |
| 113 | - u5.rx_status = RX_STA_RST; | |
| 114 | -} | |
| 115 | -void uart5_rx_receiving(void) | |
| 116 | -{ | |
| 117 | - u5.rxtimer->timeclear(); | |
| 118 | - u5.rxtimer->start(); | |
| 119 | - u5.rx_status = RX_RECEIVING; | |
| 120 | -} | |
| 121 | -void uart5_rx_finished(void) | |
| 122 | -{ | |
| 123 | - u5.rxtimer->stop(); | |
| 124 | - u5.rx_status=RX_FINISHED; | |
| 125 | -} | |
| 126 | -void UART5_IRQHandler(void)//串口2中断服务程序 | |
| 127 | -{ | |
| 128 | - if(USART_GetITStatus(UART5, USART_IT_RXNE) != RESET)//接收中断 | |
| 129 | - { | |
| 130 | - uint8_t res; | |
| 131 | - res = USART_ReceiveData(UART5);//读取接收到的数据 | |
| 132 | - switch(u5.rx_status) | |
| 133 | - { | |
| 134 | - case RX_STA_RST: | |
| 135 | - { | |
| 136 | - u5.rx_len = 0; | |
| 137 | - u5.rx_buf[u5.rx_len++] = res;//记录接收到的值 | |
| 138 | - uart5_rx_receiving(); | |
| 139 | - } break; | |
| 140 | - case RX_RECEIVING: | |
| 141 | - { | |
| 142 | - u5.rx_buf[u5.rx_len++] = res;//记录接收到的值 | |
| 143 | - if(u5.rx_len==UART5_RX_MAX) | |
| 144 | - { | |
| 145 | - uart5_rx_finished(); | |
| 146 | - } | |
| 147 | - else | |
| 148 | - { | |
| 149 | - uart5_rx_receiving(); | |
| 150 | - } | |
| 151 | - } break; | |
| 152 | - case RX_FINISHED: | |
| 153 | - { | |
| 154 | - } break; | |
| 155 | - default: break; | |
| 156 | - } | |
| 157 | - } | |
| 158 | - else | |
| 159 | - { | |
| 160 | 87 | |
| 161 | - } | |
| 88 | +uint8_t uart5_read_byte(uint8_t* c) | |
| 89 | +{ | |
| 90 | + if ( USART_GetFlagStatus(UART5, USART_FLAG_RXNE) != RESET) | |
| 91 | + { | |
| 92 | + *c = USART_ReceiveData(UART5); | |
| 93 | + return 1; | |
| 94 | + } | |
| 95 | + else | |
| 96 | + { | |
| 97 | + return 0; | |
| 98 | + } | |
| 162 | 99 | } | ... | ... |
SYSTEM/usart/uart5.h
SYSTEM/usart/usart1.c
| ... | ... | @@ -10,23 +10,11 @@ uint8_t USART1_RX_BUF[USART1_RX_MAX] = {0}; //接收缓存区 |
| 10 | 10 | uint8_t USART1_TX_BUF[USART1_TX_MAX] = {0}; //发送缓存区 |
| 11 | 11 | |
| 12 | 12 | Uart_Type u1; |
| 13 | -void usart1_init(uint32_t bound) | |
| 13 | +void usart1_init(void) | |
| 14 | 14 | { |
| 15 | 15 | GPIO_InitTypeDef GPIO_InitStructure; |
| 16 | 16 | USART_InitTypeDef USART_InitStructure; |
| 17 | 17 | NVIC_InitTypeDef NVIC_InitStructure; |
| 18 | - | |
| 19 | - memset(USART1_RX_BUF,0,USART1_RX_MAX); | |
| 20 | - memset(USART1_TX_BUF,0,USART1_TX_MAX); | |
| 21 | - | |
| 22 | - u1.rx_buf=USART1_RX_BUF; | |
| 23 | - u1.tx_buf=USART1_TX_BUF; | |
| 24 | - u1.rx_len=0; | |
| 25 | - u1.tx_len=0; | |
| 26 | - u1.rx_status = RX_STA_RST; | |
| 27 | - u1.rxtimer = &timer3; | |
| 28 | - | |
| 29 | - timer3_init(usart1_rx_finished); | |
| 30 | 18 | |
| 31 | 19 | RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //使能GPIOA时钟 |
| 32 | 20 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); //使能USART1时钟 |
| ... | ... | @@ -50,81 +38,24 @@ void usart1_init(uint32_t bound) |
| 50 | 38 | USART_Init(USART1, &USART_InitStructure); //初始化串口1 |
| 51 | 39 | |
| 52 | 40 | USART_Cmd(USART1, ENABLE); //使能串口1 |
| 53 | - | |
| 54 | - USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //开启相关中断 | |
| 55 | 41 | |
| 56 | - NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; //串口1中断通道 | |
| 57 | - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= 3; //抢占优先级3 | |
| 58 | - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子优先级3 | |
| 59 | - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 | |
| 60 | - NVIC_Init(&NVIC_InitStructure); //初始化VIC寄存器 | |
| 61 | 42 | } |
| 62 | 43 | |
| 63 | 44 | void usart1_send_byte(uint8_t one_byte) |
| 64 | 45 | { |
| 65 | 46 | |
| 66 | - while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束 | |
| 47 | + while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)!=SET);//等待发送结束 | |
| 67 | 48 | USART_SendData(USART1,one_byte); //向串口3发送数据 |
| 68 | - | |
| 69 | -} | |
| 70 | -void usart1_send_bytes(uint8_t* buf,uint16_t length) | |
| 71 | -{ | |
| 72 | - for(uint16_t i=0;i<length;i++) | |
| 73 | - { | |
| 74 | - usart1_send_byte(buf[i]); | |
| 75 | - } | |
| 76 | 49 | } |
| 77 | -void usart1_rx_reset(void) | |
| 50 | +uint8_t usart1_read_byte(uint8_t* c) | |
| 78 | 51 | { |
| 79 | - u1.rx_len=0; | |
| 80 | - memset(u1.rx_buf,0,USART1_RX_MAX);//接收缓存区清零 | |
| 81 | - u1.rx_status = RX_STA_RST; | |
| 82 | -} | |
| 83 | -void usart1_rx_receiving(void) | |
| 84 | -{ | |
| 85 | - u1.rxtimer->timeclear(); | |
| 86 | - u1.rxtimer->start(); | |
| 87 | - u1.rx_status = RX_RECEIVING; | |
| 88 | -} | |
| 89 | -void usart1_rx_finished(void) | |
| 90 | -{ | |
| 91 | - u1.rxtimer->stop(); | |
| 92 | - u1.rx_status=RX_FINISHED; | |
| 93 | -} | |
| 94 | -void USART1_IRQHandler(void)//串口2中断服务程序 | |
| 95 | -{ | |
| 96 | - if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)//接收中断 | |
| 97 | - { | |
| 98 | - uint8_t res; | |
| 99 | - res = USART_ReceiveData(USART1);//读取接收到的数据 | |
| 100 | - switch(u1.rx_status) | |
| 101 | - { | |
| 102 | - case RX_STA_RST: | |
| 103 | - { | |
| 104 | - u1.rx_len = 0; | |
| 105 | - u1.rx_buf[u1.rx_len++] = res;//记录接收到的值 | |
| 106 | - usart1_rx_receiving(); | |
| 107 | - } break; | |
| 108 | - case RX_RECEIVING: | |
| 109 | - { | |
| 110 | - u1.rx_buf[u1.rx_len++] = res;//记录接收到的值 | |
| 111 | - if(u1.rx_len==USART1_RX_MAX) | |
| 112 | - { | |
| 113 | - usart1_rx_finished(); | |
| 114 | - } | |
| 115 | - else | |
| 116 | - { | |
| 117 | - usart1_rx_receiving(); | |
| 118 | - } | |
| 119 | - } break; | |
| 120 | - case RX_FINISHED: | |
| 121 | - { | |
| 122 | - } break; | |
| 123 | - default: break; | |
| 124 | - } | |
| 125 | - } | |
| 126 | - else | |
| 127 | - { | |
| 128 | - | |
| 129 | - } | |
| 52 | + if ( USART_GetFlagStatus(USART1, USART_FLAG_RXNE) != RESET) | |
| 53 | + { | |
| 54 | + *c = USART_ReceiveData(USART1); | |
| 55 | + return 1; | |
| 56 | + } | |
| 57 | + else | |
| 58 | + { | |
| 59 | + return 0; | |
| 60 | + } | |
| 130 | 61 | } | ... | ... |
SYSTEM/usart/usart1.h
| ... | ... | @@ -6,6 +6,7 @@ |
| 6 | 6 | #include "uart.h" |
| 7 | 7 | |
| 8 | 8 | #define U1_BAUDRETE 115200 |
| 9 | + | |
| 9 | 10 | extern Uart_Type u1; |
| 10 | 11 | |
| 11 | 12 | void usart1_send_byte(uint8_t one_byte); |
| ... | ... | @@ -13,5 +14,7 @@ void usart1_send_bytes(uint8_t* buf,uint16_t length); |
| 13 | 14 | void usart1_rx_reset(void); |
| 14 | 15 | void usart1_rx_receiving(void); |
| 15 | 16 | void usart1_rx_finished(void); |
| 16 | -void uart1_init(void); | |
| 17 | +void usart1_init(void); | |
| 18 | +uint8_t usart1_read_byte(uint8_t* c); | |
| 19 | + | |
| 17 | 20 | #endif | ... | ... |
USER/IAP.uvguix.Admin
| ... | ... | @@ -11,17 +11,17 @@ |
| 11 | 11 | <View> |
| 12 | 12 | <WinId>38003</WinId> |
| 13 | 13 | <ViewName>Registers</ViewName> |
| 14 | - <TableColWidths>140 90</TableColWidths> | |
| 14 | + <TableColWidths>146 84</TableColWidths> | |
| 15 | 15 | </View> |
| 16 | 16 | <View> |
| 17 | 17 | <WinId>346</WinId> |
| 18 | 18 | <ViewName>Code Coverage</ViewName> |
| 19 | - <TableColWidths>1010 160</TableColWidths> | |
| 19 | + <TableColWidths>1010 656</TableColWidths> | |
| 20 | 20 | </View> |
| 21 | 21 | <View> |
| 22 | 22 | <WinId>204</WinId> |
| 23 | 23 | <ViewName>Performance Analyzer</ViewName> |
| 24 | - <TableColWidths>1170</TableColWidths> | |
| 24 | + <TableColWidths>1170 175 175 146</TableColWidths> | |
| 25 | 25 | </View> |
| 26 | 26 | </SECTreeCtrl> |
| 27 | 27 | |
| ... | ... | @@ -42,7 +42,7 @@ |
| 42 | 42 | <WinId>1936</WinId> |
| 43 | 43 | <ViewName>Watch 1</ViewName> |
| 44 | 44 | <UserString></UserString> |
| 45 | - <TableColWidths>200 133 133</TableColWidths> | |
| 45 | + <TableColWidths>275 295 133</TableColWidths> | |
| 46 | 46 | </View> |
| 47 | 47 | <View> |
| 48 | 48 | <WinId>1937</WinId> |
| ... | ... | @@ -54,7 +54,7 @@ |
| 54 | 54 | <WinId>1935</WinId> |
| 55 | 55 | <ViewName>Call Stack + Locals</ViewName> |
| 56 | 56 | <UserString></UserString> |
| 57 | - <TableColWidths>200 133 133</TableColWidths> | |
| 57 | + <TableColWidths>200 286 133</TableColWidths> | |
| 58 | 58 | </View> |
| 59 | 59 | <View> |
| 60 | 60 | <WinId>2506</WinId> |
| ... | ... | @@ -66,7 +66,7 @@ |
| 66 | 66 | <WinId>466</WinId> |
| 67 | 67 | <ViewName>Source Browser</ViewName> |
| 68 | 68 | <UserString>500</UserString> |
| 69 | - <TableColWidths>300</TableColWidths> | |
| 69 | + <TableColWidths>166</TableColWidths> | |
| 70 | 70 | </View> |
| 71 | 71 | </TreeListPane> |
| 72 | 72 | |
| ... | ... | @@ -74,11 +74,11 @@ |
| 74 | 74 | |
| 75 | 75 | <WindowSettings> |
| 76 | 76 | <LogicAnalizer> |
| 77 | - <ShowLACursor>1</ShowLACursor> | |
| 78 | - <ShowSignalInfo>1</ShowSignalInfo> | |
| 77 | + <ShowLACursor>0</ShowLACursor> | |
| 78 | + <ShowSignalInfo>0</ShowSignalInfo> | |
| 79 | 79 | <ShowCycles>0</ShowCycles> |
| 80 | - <LeftSideBarSize>0</LeftSideBarSize> | |
| 81 | - <TimeBaseIndex>-1</TimeBaseIndex> | |
| 80 | + <LeftSideBarSize>50</LeftSideBarSize> | |
| 81 | + <TimeBaseIndex>16</TimeBaseIndex> | |
| 82 | 82 | </LogicAnalizer> |
| 83 | 83 | </WindowSettings> |
| 84 | 84 | |
| ... | ... | @@ -97,17 +97,17 @@ |
| 97 | 97 | <yPos>-1</yPos> |
| 98 | 98 | </MaxPosition> |
| 99 | 99 | <NormalPosition> |
| 100 | - <Top>17</Top> | |
| 101 | - <Left>631</Left> | |
| 102 | - <Right>1555</Right> | |
| 103 | - <Bottom>740</Bottom> | |
| 100 | + <Top>86</Top> | |
| 101 | + <Left>-3</Left> | |
| 102 | + <Right>921</Right> | |
| 103 | + <Bottom>809</Bottom> | |
| 104 | 104 | </NormalPosition> |
| 105 | 105 | </WindowPosition> |
| 106 | 106 | <MDIClientArea> |
| 107 | 107 | <RegID>0</RegID> |
| 108 | 108 | <MDITabState> |
| 109 | - <Len>940</Len> | |
| 110 | - <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000B000000000000000100000024453A5C6769745C6769746C61625C426F6F744C6F616465725C555345525C6D61696E2E6300000000066D61696E2E6300000000BCA8E100FFFFFFFF2E453A5C6769745C6769746C61625C426F6F744C6F616465725C53595354454D5C75736172745C7573617274312E6800000000087573617274312E6800000000FFDC7800FFFFFFFF2D453A5C6769745C6769746C61625C426F6F744C6F616465725C53595354454D5C75736172745C75617274352E63000000000775617274352E6300000000BECEA100FFFFFFFF2E453A5C6769745C6769746C61625C426F6F744C6F616465725C53595354454D5C75736172745C7573617274312E6300000000087573617274312E6300000000F0A0A100FFFFFFFF29453A5C6769745C6769746C61625C426F6F744C6F616465725C53595354454D5C7379735C6465762E6800000000056465762E6800000000BCA8E100FFFFFFFF22453A5C6769745C6769746C61625C426F6F744C6F616465725C4941505C6961702E6300000000056961702E63000000009CC1B600FFFFFFFF2D453A5C6769745C6769746C61625C426F6F744C6F616465725C53595354454D5C75736172745C75617274352E68000000000775617274352E6800000000F7B88600FFFFFFFF22453A5C6769745C6769746C61625C426F6F744C6F616465725C4941505C6961702E6800000000056961702E6800000000D9ADC200FFFFFFFF2F453A5C6769745C6769746C61625C426F6F744C6F616465725C48415244574152455C464C4153485C666C6173682E630000000007666C6173682E6300000000A5C2D700FFFFFFFF34453A5C6769745C6769746C61625C426F6F744C6F616465725C46574C49425C7372635C73746D3332663478785F666C6173682E63000000001173746D3332663478785F666C6173682E6300000000B3A6BE00FFFFFFFF34453A5C6769745C6769746C61625C426F6F744C6F616465725C46574C49425C696E635C73746D3332663478785F666C6173682E68000000001173746D3332663478785F666C6173682E6800000000EAD6A300FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000009030000</Data> | |
| 109 | + <Len>235</Len> | |
| 110 | + <Data>01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000025453A5C6769745C6769746C61625C426F6F744C6F616465725C4941505C796D6F64656D2E630000000008796D6F64656D2E6300000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F40000006600000080070000FD020000</Data> | |
| 111 | 111 | </MDITabState> |
| 112 | 112 | </MDIClientArea> |
| 113 | 113 | <ViewEx> |
| ... | ... | @@ -146,7 +146,7 @@ |
| 146 | 146 | <RecentRowIndex>0</RecentRowIndex> |
| 147 | 147 | <RectRecentDocked> |
| 148 | 148 | <Len>16</Len> |
| 149 | - <Data>0300000066000000ED000000D9020000</Data> | |
| 149 | + <Data>0300000066000000ED000000CD020000</Data> | |
| 150 | 150 | </RectRecentDocked> |
| 151 | 151 | <RectRecentFloat> |
| 152 | 152 | <Len>16</Len> |
| ... | ... | @@ -166,7 +166,7 @@ |
| 166 | 166 | <RecentRowIndex>0</RecentRowIndex> |
| 167 | 167 | <RectRecentDocked> |
| 168 | 168 | <Len>16</Len> |
| 169 | - <Data>0300000066000000ED000000D9020000</Data> | |
| 169 | + <Data>0300000066000000ED000000CD020000</Data> | |
| 170 | 170 | </RectRecentDocked> |
| 171 | 171 | <RectRecentFloat> |
| 172 | 172 | <Len>16</Len> |
| ... | ... | @@ -182,7 +182,7 @@ |
| 182 | 182 | <IsActivated>0</IsActivated> |
| 183 | 183 | <MRUWidth>32767</MRUWidth> |
| 184 | 184 | <PinState>0</PinState> |
| 185 | - <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 185 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 186 | 186 | <RecentRowIndex>0</RecentRowIndex> |
| 187 | 187 | <RectRecentDocked> |
| 188 | 188 | <Len>16</Len> |
| ... | ... | @@ -190,7 +190,7 @@ |
| 190 | 190 | </RectRecentDocked> |
| 191 | 191 | <RectRecentFloat> |
| 192 | 192 | <Len>16</Len> |
| 193 | - <Data>D8000000EF000000A00300007F010000</Data> | |
| 193 | + <Data>03040000E0000000CB060000C5020000</Data> | |
| 194 | 194 | </RectRecentFloat> |
| 195 | 195 | </Window> |
| 196 | 196 | <Window> |
| ... | ... | @@ -446,7 +446,7 @@ |
| 446 | 446 | <RecentRowIndex>0</RecentRowIndex> |
| 447 | 447 | <RectRecentDocked> |
| 448 | 448 | <Len>16</Len> |
| 449 | - <Data>0300000066000000ED000000D9020000</Data> | |
| 449 | + <Data>0300000066000000ED000000CD020000</Data> | |
| 450 | 450 | </RectRecentDocked> |
| 451 | 451 | <RectRecentFloat> |
| 452 | 452 | <Len>16</Len> |
| ... | ... | @@ -466,7 +466,7 @@ |
| 466 | 466 | <RecentRowIndex>0</RecentRowIndex> |
| 467 | 467 | <RectRecentDocked> |
| 468 | 468 | <Len>16</Len> |
| 469 | - <Data>0300000066000000ED000000D9020000</Data> | |
| 469 | + <Data>0300000066000000ED000000CD020000</Data> | |
| 470 | 470 | </RectRecentDocked> |
| 471 | 471 | <RectRecentFloat> |
| 472 | 472 | <Len>16</Len> |
| ... | ... | @@ -486,7 +486,7 @@ |
| 486 | 486 | <RecentRowIndex>0</RecentRowIndex> |
| 487 | 487 | <RectRecentDocked> |
| 488 | 488 | <Len>16</Len> |
| 489 | - <Data>030000000D0300007D070000CD030000</Data> | |
| 489 | + <Data>03000000010300007D070000CD030000</Data> | |
| 490 | 490 | </RectRecentDocked> |
| 491 | 491 | <RectRecentFloat> |
| 492 | 492 | <Len>16</Len> |
| ... | ... | @@ -526,7 +526,7 @@ |
| 526 | 526 | <RecentRowIndex>0</RecentRowIndex> |
| 527 | 527 | <RectRecentDocked> |
| 528 | 528 | <Len>16</Len> |
| 529 | - <Data>030000000D0300007D070000CD030000</Data> | |
| 529 | + <Data>03000000010300007D070000CD030000</Data> | |
| 530 | 530 | </RectRecentDocked> |
| 531 | 531 | <RectRecentFloat> |
| 532 | 532 | <Len>16</Len> |
| ... | ... | @@ -1146,7 +1146,7 @@ |
| 1146 | 1146 | <RecentRowIndex>0</RecentRowIndex> |
| 1147 | 1147 | <RectRecentDocked> |
| 1148 | 1148 | <Len>16</Len> |
| 1149 | - <Data>0300000066000000ED000000D9020000</Data> | |
| 1149 | + <Data>0300000066000000ED000000CD020000</Data> | |
| 1150 | 1150 | </RectRecentDocked> |
| 1151 | 1151 | <RectRecentFloat> |
| 1152 | 1152 | <Len>16</Len> |
| ... | ... | @@ -1166,7 +1166,7 @@ |
| 1166 | 1166 | <RecentRowIndex>0</RecentRowIndex> |
| 1167 | 1167 | <RectRecentDocked> |
| 1168 | 1168 | <Len>16</Len> |
| 1169 | - <Data>030000000D0300007D070000CD030000</Data> | |
| 1169 | + <Data>03000000010300007D070000CD030000</Data> | |
| 1170 | 1170 | </RectRecentDocked> |
| 1171 | 1171 | <RectRecentFloat> |
| 1172 | 1172 | <Len>16</Len> |
| ... | ... | @@ -1186,7 +1186,7 @@ |
| 1186 | 1186 | <RecentRowIndex>0</RecentRowIndex> |
| 1187 | 1187 | <RectRecentDocked> |
| 1188 | 1188 | <Len>16</Len> |
| 1189 | - <Data>030000000D0300007D070000CD030000</Data> | |
| 1189 | + <Data>03000000010300007D070000CD030000</Data> | |
| 1190 | 1190 | </RectRecentDocked> |
| 1191 | 1191 | <RectRecentFloat> |
| 1192 | 1192 | <Len>16</Len> |
| ... | ... | @@ -1246,7 +1246,7 @@ |
| 1246 | 1246 | <RecentRowIndex>0</RecentRowIndex> |
| 1247 | 1247 | <RectRecentDocked> |
| 1248 | 1248 | <Len>16</Len> |
| 1249 | - <Data>030000000D0300007D070000CD030000</Data> | |
| 1249 | + <Data>03000000010300007D070000CD030000</Data> | |
| 1250 | 1250 | </RectRecentDocked> |
| 1251 | 1251 | <RectRecentFloat> |
| 1252 | 1252 | <Len>16</Len> |
| ... | ... | @@ -1266,7 +1266,7 @@ |
| 1266 | 1266 | <RecentRowIndex>0</RecentRowIndex> |
| 1267 | 1267 | <RectRecentDocked> |
| 1268 | 1268 | <Len>16</Len> |
| 1269 | - <Data>030000000D0300007D070000CD030000</Data> | |
| 1269 | + <Data>03000000010300007D070000CD030000</Data> | |
| 1270 | 1270 | </RectRecentDocked> |
| 1271 | 1271 | <RectRecentFloat> |
| 1272 | 1272 | <Len>16</Len> |
| ... | ... | @@ -1706,11 +1706,11 @@ |
| 1706 | 1706 | <RecentRowIndex>0</RecentRowIndex> |
| 1707 | 1707 | <RectRecentDocked> |
| 1708 | 1708 | <Len>16</Len> |
| 1709 | - <Data>0000000000000000C40300001C000000</Data> | |
| 1709 | + <Data>0E00000000000000D20300001C000000</Data> | |
| 1710 | 1710 | </RectRecentDocked> |
| 1711 | 1711 | <RectRecentFloat> |
| 1712 | 1712 | <Len>16</Len> |
| 1713 | - <Data>0A0000000A0000006E0000006E000000</Data> | |
| 1713 | + <Data>0A0000000A000000CB03000042000000</Data> | |
| 1714 | 1714 | </RectRecentFloat> |
| 1715 | 1715 | </Window> |
| 1716 | 1716 | <Window> |
| ... | ... | @@ -1746,7 +1746,7 @@ |
| 1746 | 1746 | <RecentRowIndex>1</RecentRowIndex> |
| 1747 | 1747 | <RectRecentDocked> |
| 1748 | 1748 | <Len>16</Len> |
| 1749 | - <Data>000000001C000000E701000038000000</Data> | |
| 1749 | + <Data>090000001C000000F001000038000000</Data> | |
| 1750 | 1750 | </RectRecentDocked> |
| 1751 | 1751 | <RectRecentFloat> |
| 1752 | 1752 | <Len>16</Len> |
| ... | ... | @@ -1795,14 +1795,14 @@ |
| 1795 | 1795 | </Window> |
| 1796 | 1796 | <DockMan> |
| 1797 | 1797 | <Len>3312</Len> |
| 1798 | - <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000F2020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F000000009030000000000004F000000F0000000F20200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000F202000080070000F60200000100000001000010040000000100000002FDFFFF8E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000000D03000080070000FD03000000000000F602000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> | |
| 1798 | + <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000E6020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F0000000FD020000000000004F000000F0000000E60200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000E602000080070000EA0200000100000001000010040000000100000022FFFFFF76010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000000103000080070000FD03000000000000EA02000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> | |
| 1799 | 1799 | </DockMan> |
| 1800 | 1800 | <ToolBar> |
| 1801 | 1801 | <RegID>59392</RegID> |
| 1802 | 1802 | <Name>File</Name> |
| 1803 | 1803 | <Buttons> |
| 1804 | - <Len>2419</Len> | |
| 1805 | - <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000003525443960000000000000013000D5469636B5F44656C61795F6D73000454494D340674696D657234065553415254350555415254350275350575617274350674696D6572360454494D360452585F520853656E64427974650A454E5F3438355F50696E0B454E5F3438355F506F7274035254430751555243434647042B435351044E554C4C06514D5443464700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000</Data> | |
| 1804 | + <Len>2344</Len> | |
| 1805 | + <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000D73657373696F6E5F626567696E960000000000000007000D73657373696F6E5F626567696E0D7061636B65745F6C656E6774680D526563656976655061636B657406726573756C740E596D6F64656D5F526563656976650C43616C63436865636B73756D0C75617274355F72785F66696E00000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000</Data> | |
| 1806 | 1806 | </Buttons> |
| 1807 | 1807 | <OriginalItems> |
| 1808 | 1808 | <Len>1423</Len> |
| ... | ... | @@ -1818,7 +1818,7 @@ |
| 1818 | 1818 | <Name>Build</Name> |
| 1819 | 1819 | <Buttons> |
| 1820 | 1820 | <Len>966</Len> |
| 1821 | - <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000034941509600000000000000010003494150000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> | |
| 1821 | + <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000034941509600000000000000010003494150000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> | |
| 1822 | 1822 | </Buttons> |
| 1823 | 1823 | <OriginalItems> |
| 1824 | 1824 | <Len>583</Len> |
| ... | ... | @@ -1834,7 +1834,7 @@ |
| 1834 | 1834 | <Name>Debug</Name> |
| 1835 | 1835 | <Buttons> |
| 1836 | 1836 | <Len>2373</Len> |
| 1837 | - <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> | |
| 1837 | + <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> | |
| 1838 | 1838 | </Buttons> |
| 1839 | 1839 | <OriginalItems> |
| 1840 | 1840 | <Len>898</Len> |
| ... | ... | @@ -1851,111 +1851,1762 @@ |
| 1851 | 1851 | <ScreenCY>1080</ScreenCY> |
| 1852 | 1852 | </ControlBarsSummary> |
| 1853 | 1853 | </ViewEx> |
| 1854 | - </WinLayoutEx> | |
| 1855 | - | |
| 1856 | - <MDIGroups> | |
| 1857 | - <Orientation>1</Orientation> | |
| 1858 | - <ActiveMDIGroup>0</ActiveMDIGroup> | |
| 1859 | - <MDIGroup> | |
| 1860 | - <Size>100</Size> | |
| 1861 | - <ActiveTab>0</ActiveTab> | |
| 1862 | - <Doc> | |
| 1863 | - <Name>.\main.c</Name> | |
| 1864 | - <ColumnNumber>2</ColumnNumber> | |
| 1865 | - <TopLine>39</TopLine> | |
| 1866 | - <CurrentLine>90</CurrentLine> | |
| 1867 | - <Folding>1</Folding> | |
| 1868 | - <ContractedFolders>45,61</ContractedFolders> | |
| 1869 | - <PaneID>0</PaneID> | |
| 1870 | - </Doc> | |
| 1871 | - <Doc> | |
| 1872 | - <Name>..\SYSTEM\usart\usart1.h</Name> | |
| 1873 | - <ColumnNumber>2</ColumnNumber> | |
| 1874 | - <TopLine>1</TopLine> | |
| 1875 | - <CurrentLine>9</CurrentLine> | |
| 1876 | - <Folding>1</Folding> | |
| 1877 | - <ContractedFolders></ContractedFolders> | |
| 1878 | - <PaneID>0</PaneID> | |
| 1879 | - </Doc> | |
| 1880 | - <Doc> | |
| 1881 | - <Name>..\SYSTEM\usart\uart5.c</Name> | |
| 1882 | - <ColumnNumber>21</ColumnNumber> | |
| 1883 | - <TopLine>68</TopLine> | |
| 1884 | - <CurrentLine>123</CurrentLine> | |
| 1885 | - <Folding>1</Folding> | |
| 1886 | - <ContractedFolders>84,89,95,102,115,126</ContractedFolders> | |
| 1887 | - <PaneID>0</PaneID> | |
| 1888 | - </Doc> | |
| 1889 | - <Doc> | |
| 1890 | - <Name>..\SYSTEM\usart\usart1.c</Name> | |
| 1891 | - <ColumnNumber>13</ColumnNumber> | |
| 1892 | - <TopLine>1</TopLine> | |
| 1893 | - <CurrentLine>1</CurrentLine> | |
| 1894 | - <Folding>1</Folding> | |
| 1895 | - <ContractedFolders></ContractedFolders> | |
| 1896 | - <PaneID>0</PaneID> | |
| 1897 | - </Doc> | |
| 1898 | - <Doc> | |
| 1899 | - <Name>..\SYSTEM\sys\dev.h</Name> | |
| 1900 | - <ColumnNumber>0</ColumnNumber> | |
| 1901 | - <TopLine>36</TopLine> | |
| 1902 | - <CurrentLine>48</CurrentLine> | |
| 1903 | - <Folding>1</Folding> | |
| 1904 | - <ContractedFolders></ContractedFolders> | |
| 1905 | - <PaneID>0</PaneID> | |
| 1906 | - </Doc> | |
| 1907 | - <Doc> | |
| 1908 | - <Name>..\IAP\iap.c</Name> | |
| 1909 | - <ColumnNumber>0</ColumnNumber> | |
| 1910 | - <TopLine>128</TopLine> | |
| 1911 | - <CurrentLine>158</CurrentLine> | |
| 1912 | - <Folding>1</Folding> | |
| 1913 | - <ContractedFolders></ContractedFolders> | |
| 1914 | - <PaneID>0</PaneID> | |
| 1915 | - </Doc> | |
| 1916 | - <Doc> | |
| 1917 | - <Name>..\SYSTEM\usart\uart5.h</Name> | |
| 1918 | - <ColumnNumber>20</ColumnNumber> | |
| 1919 | - <TopLine>1</TopLine> | |
| 1920 | - <CurrentLine>6</CurrentLine> | |
| 1921 | - <Folding>1</Folding> | |
| 1922 | - <ContractedFolders></ContractedFolders> | |
| 1923 | - <PaneID>0</PaneID> | |
| 1924 | - </Doc> | |
| 1925 | - <Doc> | |
| 1926 | - <Name>..\IAP\iap.h</Name> | |
| 1927 | - <ColumnNumber>23</ColumnNumber> | |
| 1928 | - <TopLine>1</TopLine> | |
| 1929 | - <CurrentLine>19</CurrentLine> | |
| 1930 | - <Folding>1</Folding> | |
| 1931 | - <ContractedFolders></ContractedFolders> | |
| 1932 | - <PaneID>0</PaneID> | |
| 1933 | - </Doc> | |
| 1934 | - <Doc> | |
| 1935 | - <Name>..\HARDWARE\FLASH\flash.c</Name> | |
| 1936 | - <ColumnNumber>41</ColumnNumber> | |
| 1937 | - <TopLine>1</TopLine> | |
| 1938 | - <CurrentLine>43</CurrentLine> | |
| 1939 | - <Folding>1</Folding> | |
| 1940 | - <ContractedFolders></ContractedFolders> | |
| 1941 | - <PaneID>0</PaneID> | |
| 1942 | - </Doc> | |
| 1943 | - <Doc> | |
| 1944 | - <Name>..\FWLIB\src\stm32f4xx_flash.c</Name> | |
| 1945 | - <ColumnNumber>0</ColumnNumber> | |
| 1946 | - <TopLine>454</TopLine> | |
| 1947 | - <CurrentLine>469</CurrentLine> | |
| 1948 | - <Folding>1</Folding> | |
| 1949 | - <ContractedFolders></ContractedFolders> | |
| 1950 | - <PaneID>0</PaneID> | |
| 1951 | - </Doc> | |
| 1952 | - <Doc> | |
| 1953 | - <Name>..\FWLIB\inc\stm32f4xx_flash.h</Name> | |
| 1954 | - <ColumnNumber>0</ColumnNumber> | |
| 1955 | - <TopLine>123</TopLine> | |
| 1956 | - <CurrentLine>135</CurrentLine> | |
| 1854 | + <ViewEx> | |
| 1855 | + <ViewType>1</ViewType> | |
| 1856 | + <ViewName>Debug</ViewName> | |
| 1857 | + <Window> | |
| 1858 | + <RegID>-1</RegID> | |
| 1859 | + <PaneID>-1</PaneID> | |
| 1860 | + <IsVisible>0</IsVisible> | |
| 1861 | + <IsFloating>0</IsFloating> | |
| 1862 | + <IsTabbed>0</IsTabbed> | |
| 1863 | + <IsActivated>0</IsActivated> | |
| 1864 | + <MRUWidth>32767</MRUWidth> | |
| 1865 | + <PinState>0</PinState> | |
| 1866 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 1867 | + <RecentRowIndex>0</RecentRowIndex> | |
| 1868 | + <RectRecentDocked> | |
| 1869 | + <Len>16</Len> | |
| 1870 | + <Data>F40000004F00000080070000DF000000</Data> | |
| 1871 | + </RectRecentDocked> | |
| 1872 | + <RectRecentFloat> | |
| 1873 | + <Len>16</Len> | |
| 1874 | + <Data>F40000006600000080070000F6000000</Data> | |
| 1875 | + </RectRecentFloat> | |
| 1876 | + </Window> | |
| 1877 | + <Window> | |
| 1878 | + <RegID>1005</RegID> | |
| 1879 | + <PaneID>1005</PaneID> | |
| 1880 | + <IsVisible>1</IsVisible> | |
| 1881 | + <IsFloating>0</IsFloating> | |
| 1882 | + <IsTabbed>0</IsTabbed> | |
| 1883 | + <IsActivated>0</IsActivated> | |
| 1884 | + <MRUWidth>32767</MRUWidth> | |
| 1885 | + <PinState>0</PinState> | |
| 1886 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 1887 | + <RecentRowIndex>0</RecentRowIndex> | |
| 1888 | + <RectRecentDocked> | |
| 1889 | + <Len>16</Len> | |
| 1890 | + <Data>0300000066000000ED000000B3010000</Data> | |
| 1891 | + </RectRecentDocked> | |
| 1892 | + <RectRecentFloat> | |
| 1893 | + <Len>16</Len> | |
| 1894 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 1895 | + </RectRecentFloat> | |
| 1896 | + </Window> | |
| 1897 | + <Window> | |
| 1898 | + <RegID>109</RegID> | |
| 1899 | + <PaneID>109</PaneID> | |
| 1900 | + <IsVisible>0</IsVisible> | |
| 1901 | + <IsFloating>0</IsFloating> | |
| 1902 | + <IsTabbed>0</IsTabbed> | |
| 1903 | + <IsActivated>0</IsActivated> | |
| 1904 | + <MRUWidth>32767</MRUWidth> | |
| 1905 | + <PinState>0</PinState> | |
| 1906 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 1907 | + <RecentRowIndex>0</RecentRowIndex> | |
| 1908 | + <RectRecentDocked> | |
| 1909 | + <Len>16</Len> | |
| 1910 | + <Data>0300000066000000ED000000B3010000</Data> | |
| 1911 | + </RectRecentDocked> | |
| 1912 | + <RectRecentFloat> | |
| 1913 | + <Len>16</Len> | |
| 1914 | + <Data>8A000000A1000000A6010000E1020000</Data> | |
| 1915 | + </RectRecentFloat> | |
| 1916 | + </Window> | |
| 1917 | + <Window> | |
| 1918 | + <RegID>1465</RegID> | |
| 1919 | + <PaneID>1465</PaneID> | |
| 1920 | + <IsVisible>1</IsVisible> | |
| 1921 | + <IsFloating>0</IsFloating> | |
| 1922 | + <IsTabbed>0</IsTabbed> | |
| 1923 | + <IsActivated>0</IsActivated> | |
| 1924 | + <MRUWidth>32767</MRUWidth> | |
| 1925 | + <PinState>0</PinState> | |
| 1926 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 1927 | + <RecentRowIndex>0</RecentRowIndex> | |
| 1928 | + <RectRecentDocked> | |
| 1929 | + <Len>16</Len> | |
| 1930 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 1931 | + </RectRecentDocked> | |
| 1932 | + <RectRecentFloat> | |
| 1933 | + <Len>16</Len> | |
| 1934 | + <Data>C5030000E80200008D060000CD040000</Data> | |
| 1935 | + </RectRecentFloat> | |
| 1936 | + </Window> | |
| 1937 | + <Window> | |
| 1938 | + <RegID>1466</RegID> | |
| 1939 | + <PaneID>1466</PaneID> | |
| 1940 | + <IsVisible>1</IsVisible> | |
| 1941 | + <IsFloating>0</IsFloating> | |
| 1942 | + <IsTabbed>0</IsTabbed> | |
| 1943 | + <IsActivated>0</IsActivated> | |
| 1944 | + <MRUWidth>32767</MRUWidth> | |
| 1945 | + <PinState>0</PinState> | |
| 1946 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 1947 | + <RecentRowIndex>0</RecentRowIndex> | |
| 1948 | + <RectRecentDocked> | |
| 1949 | + <Len>16</Len> | |
| 1950 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 1951 | + </RectRecentDocked> | |
| 1952 | + <RectRecentFloat> | |
| 1953 | + <Len>16</Len> | |
| 1954 | + <Data>8A000000A10000005203000031010000</Data> | |
| 1955 | + </RectRecentFloat> | |
| 1956 | + </Window> | |
| 1957 | + <Window> | |
| 1958 | + <RegID>1467</RegID> | |
| 1959 | + <PaneID>1467</PaneID> | |
| 1960 | + <IsVisible>0</IsVisible> | |
| 1961 | + <IsFloating>0</IsFloating> | |
| 1962 | + <IsTabbed>0</IsTabbed> | |
| 1963 | + <IsActivated>0</IsActivated> | |
| 1964 | + <MRUWidth>32767</MRUWidth> | |
| 1965 | + <PinState>0</PinState> | |
| 1966 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 1967 | + <RecentRowIndex>0</RecentRowIndex> | |
| 1968 | + <RectRecentDocked> | |
| 1969 | + <Len>16</Len> | |
| 1970 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 1971 | + </RectRecentDocked> | |
| 1972 | + <RectRecentFloat> | |
| 1973 | + <Len>16</Len> | |
| 1974 | + <Data>8A000000A10000005203000031010000</Data> | |
| 1975 | + </RectRecentFloat> | |
| 1976 | + </Window> | |
| 1977 | + <Window> | |
| 1978 | + <RegID>1468</RegID> | |
| 1979 | + <PaneID>1468</PaneID> | |
| 1980 | + <IsVisible>0</IsVisible> | |
| 1981 | + <IsFloating>0</IsFloating> | |
| 1982 | + <IsTabbed>0</IsTabbed> | |
| 1983 | + <IsActivated>0</IsActivated> | |
| 1984 | + <MRUWidth>32767</MRUWidth> | |
| 1985 | + <PinState>0</PinState> | |
| 1986 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 1987 | + <RecentRowIndex>0</RecentRowIndex> | |
| 1988 | + <RectRecentDocked> | |
| 1989 | + <Len>16</Len> | |
| 1990 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 1991 | + </RectRecentDocked> | |
| 1992 | + <RectRecentFloat> | |
| 1993 | + <Len>16</Len> | |
| 1994 | + <Data>8A000000A10000005203000031010000</Data> | |
| 1995 | + </RectRecentFloat> | |
| 1996 | + </Window> | |
| 1997 | + <Window> | |
| 1998 | + <RegID>1506</RegID> | |
| 1999 | + <PaneID>1506</PaneID> | |
| 2000 | + <IsVisible>0</IsVisible> | |
| 2001 | + <IsFloating>0</IsFloating> | |
| 2002 | + <IsTabbed>0</IsTabbed> | |
| 2003 | + <IsActivated>0</IsActivated> | |
| 2004 | + <MRUWidth>32767</MRUWidth> | |
| 2005 | + <PinState>0</PinState> | |
| 2006 | + <RecentFrameAlignment>16384</RecentFrameAlignment> | |
| 2007 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2008 | + <RectRecentDocked> | |
| 2009 | + <Len>16</Len> | |
| 2010 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2011 | + </RectRecentDocked> | |
| 2012 | + <RectRecentFloat> | |
| 2013 | + <Len>16</Len> | |
| 2014 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2015 | + </RectRecentFloat> | |
| 2016 | + </Window> | |
| 2017 | + <Window> | |
| 2018 | + <RegID>1913</RegID> | |
| 2019 | + <PaneID>1913</PaneID> | |
| 2020 | + <IsVisible>0</IsVisible> | |
| 2021 | + <IsFloating>0</IsFloating> | |
| 2022 | + <IsTabbed>0</IsTabbed> | |
| 2023 | + <IsActivated>0</IsActivated> | |
| 2024 | + <MRUWidth>32767</MRUWidth> | |
| 2025 | + <PinState>0</PinState> | |
| 2026 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2027 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2028 | + <RectRecentDocked> | |
| 2029 | + <Len>16</Len> | |
| 2030 | + <Data>F7000000660000007D070000C6000000</Data> | |
| 2031 | + </RectRecentDocked> | |
| 2032 | + <RectRecentFloat> | |
| 2033 | + <Len>16</Len> | |
| 2034 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2035 | + </RectRecentFloat> | |
| 2036 | + </Window> | |
| 2037 | + <Window> | |
| 2038 | + <RegID>1935</RegID> | |
| 2039 | + <PaneID>1935</PaneID> | |
| 2040 | + <IsVisible>1</IsVisible> | |
| 2041 | + <IsFloating>0</IsFloating> | |
| 2042 | + <IsTabbed>0</IsTabbed> | |
| 2043 | + <IsActivated>0</IsActivated> | |
| 2044 | + <MRUWidth>32767</MRUWidth> | |
| 2045 | + <PinState>0</PinState> | |
| 2046 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2047 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2048 | + <RectRecentDocked> | |
| 2049 | + <Len>16</Len> | |
| 2050 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 2051 | + </RectRecentDocked> | |
| 2052 | + <RectRecentFloat> | |
| 2053 | + <Len>16</Len> | |
| 2054 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2055 | + </RectRecentFloat> | |
| 2056 | + </Window> | |
| 2057 | + <Window> | |
| 2058 | + <RegID>1936</RegID> | |
| 2059 | + <PaneID>1936</PaneID> | |
| 2060 | + <IsVisible>1</IsVisible> | |
| 2061 | + <IsFloating>0</IsFloating> | |
| 2062 | + <IsTabbed>0</IsTabbed> | |
| 2063 | + <IsActivated>0</IsActivated> | |
| 2064 | + <MRUWidth>32767</MRUWidth> | |
| 2065 | + <PinState>0</PinState> | |
| 2066 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2067 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2068 | + <RectRecentDocked> | |
| 2069 | + <Len>16</Len> | |
| 2070 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 2071 | + </RectRecentDocked> | |
| 2072 | + <RectRecentFloat> | |
| 2073 | + <Len>16</Len> | |
| 2074 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2075 | + </RectRecentFloat> | |
| 2076 | + </Window> | |
| 2077 | + <Window> | |
| 2078 | + <RegID>1937</RegID> | |
| 2079 | + <PaneID>1937</PaneID> | |
| 2080 | + <IsVisible>0</IsVisible> | |
| 2081 | + <IsFloating>0</IsFloating> | |
| 2082 | + <IsTabbed>0</IsTabbed> | |
| 2083 | + <IsActivated>0</IsActivated> | |
| 2084 | + <MRUWidth>32767</MRUWidth> | |
| 2085 | + <PinState>0</PinState> | |
| 2086 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2087 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2088 | + <RectRecentDocked> | |
| 2089 | + <Len>16</Len> | |
| 2090 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 2091 | + </RectRecentDocked> | |
| 2092 | + <RectRecentFloat> | |
| 2093 | + <Len>16</Len> | |
| 2094 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2095 | + </RectRecentFloat> | |
| 2096 | + </Window> | |
| 2097 | + <Window> | |
| 2098 | + <RegID>1939</RegID> | |
| 2099 | + <PaneID>1939</PaneID> | |
| 2100 | + <IsVisible>0</IsVisible> | |
| 2101 | + <IsFloating>0</IsFloating> | |
| 2102 | + <IsTabbed>0</IsTabbed> | |
| 2103 | + <IsActivated>0</IsActivated> | |
| 2104 | + <MRUWidth>32767</MRUWidth> | |
| 2105 | + <PinState>0</PinState> | |
| 2106 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2107 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2108 | + <RectRecentDocked> | |
| 2109 | + <Len>16</Len> | |
| 2110 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 2111 | + </RectRecentDocked> | |
| 2112 | + <RectRecentFloat> | |
| 2113 | + <Len>16</Len> | |
| 2114 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2115 | + </RectRecentFloat> | |
| 2116 | + </Window> | |
| 2117 | + <Window> | |
| 2118 | + <RegID>1940</RegID> | |
| 2119 | + <PaneID>1940</PaneID> | |
| 2120 | + <IsVisible>0</IsVisible> | |
| 2121 | + <IsFloating>0</IsFloating> | |
| 2122 | + <IsTabbed>0</IsTabbed> | |
| 2123 | + <IsActivated>0</IsActivated> | |
| 2124 | + <MRUWidth>32767</MRUWidth> | |
| 2125 | + <PinState>0</PinState> | |
| 2126 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2127 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2128 | + <RectRecentDocked> | |
| 2129 | + <Len>16</Len> | |
| 2130 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 2131 | + </RectRecentDocked> | |
| 2132 | + <RectRecentFloat> | |
| 2133 | + <Len>16</Len> | |
| 2134 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2135 | + </RectRecentFloat> | |
| 2136 | + </Window> | |
| 2137 | + <Window> | |
| 2138 | + <RegID>1941</RegID> | |
| 2139 | + <PaneID>1941</PaneID> | |
| 2140 | + <IsVisible>0</IsVisible> | |
| 2141 | + <IsFloating>0</IsFloating> | |
| 2142 | + <IsTabbed>0</IsTabbed> | |
| 2143 | + <IsActivated>0</IsActivated> | |
| 2144 | + <MRUWidth>32767</MRUWidth> | |
| 2145 | + <PinState>0</PinState> | |
| 2146 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2147 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2148 | + <RectRecentDocked> | |
| 2149 | + <Len>16</Len> | |
| 2150 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 2151 | + </RectRecentDocked> | |
| 2152 | + <RectRecentFloat> | |
| 2153 | + <Len>16</Len> | |
| 2154 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2155 | + </RectRecentFloat> | |
| 2156 | + </Window> | |
| 2157 | + <Window> | |
| 2158 | + <RegID>1942</RegID> | |
| 2159 | + <PaneID>1942</PaneID> | |
| 2160 | + <IsVisible>0</IsVisible> | |
| 2161 | + <IsFloating>0</IsFloating> | |
| 2162 | + <IsTabbed>0</IsTabbed> | |
| 2163 | + <IsActivated>0</IsActivated> | |
| 2164 | + <MRUWidth>32767</MRUWidth> | |
| 2165 | + <PinState>0</PinState> | |
| 2166 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2167 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2168 | + <RectRecentDocked> | |
| 2169 | + <Len>16</Len> | |
| 2170 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 2171 | + </RectRecentDocked> | |
| 2172 | + <RectRecentFloat> | |
| 2173 | + <Len>16</Len> | |
| 2174 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2175 | + </RectRecentFloat> | |
| 2176 | + </Window> | |
| 2177 | + <Window> | |
| 2178 | + <RegID>195</RegID> | |
| 2179 | + <PaneID>195</PaneID> | |
| 2180 | + <IsVisible>0</IsVisible> | |
| 2181 | + <IsFloating>0</IsFloating> | |
| 2182 | + <IsTabbed>0</IsTabbed> | |
| 2183 | + <IsActivated>0</IsActivated> | |
| 2184 | + <MRUWidth>32767</MRUWidth> | |
| 2185 | + <PinState>0</PinState> | |
| 2186 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2187 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2188 | + <RectRecentDocked> | |
| 2189 | + <Len>16</Len> | |
| 2190 | + <Data>0300000066000000ED000000B3010000</Data> | |
| 2191 | + </RectRecentDocked> | |
| 2192 | + <RectRecentFloat> | |
| 2193 | + <Len>16</Len> | |
| 2194 | + <Data>8A000000A1000000A6010000E1020000</Data> | |
| 2195 | + </RectRecentFloat> | |
| 2196 | + </Window> | |
| 2197 | + <Window> | |
| 2198 | + <RegID>196</RegID> | |
| 2199 | + <PaneID>196</PaneID> | |
| 2200 | + <IsVisible>0</IsVisible> | |
| 2201 | + <IsFloating>0</IsFloating> | |
| 2202 | + <IsTabbed>0</IsTabbed> | |
| 2203 | + <IsActivated>0</IsActivated> | |
| 2204 | + <MRUWidth>32767</MRUWidth> | |
| 2205 | + <PinState>0</PinState> | |
| 2206 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2207 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2208 | + <RectRecentDocked> | |
| 2209 | + <Len>16</Len> | |
| 2210 | + <Data>0300000066000000ED000000B3010000</Data> | |
| 2211 | + </RectRecentDocked> | |
| 2212 | + <RectRecentFloat> | |
| 2213 | + <Len>16</Len> | |
| 2214 | + <Data>8A000000A1000000A6010000E1020000</Data> | |
| 2215 | + </RectRecentFloat> | |
| 2216 | + </Window> | |
| 2217 | + <Window> | |
| 2218 | + <RegID>197</RegID> | |
| 2219 | + <PaneID>197</PaneID> | |
| 2220 | + <IsVisible>0</IsVisible> | |
| 2221 | + <IsFloating>0</IsFloating> | |
| 2222 | + <IsTabbed>0</IsTabbed> | |
| 2223 | + <IsActivated>0</IsActivated> | |
| 2224 | + <MRUWidth>32767</MRUWidth> | |
| 2225 | + <PinState>0</PinState> | |
| 2226 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2227 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2228 | + <RectRecentDocked> | |
| 2229 | + <Len>16</Len> | |
| 2230 | + <Data>03000000C30200007D070000CD030000</Data> | |
| 2231 | + </RectRecentDocked> | |
| 2232 | + <RectRecentFloat> | |
| 2233 | + <Len>16</Len> | |
| 2234 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2235 | + </RectRecentFloat> | |
| 2236 | + </Window> | |
| 2237 | + <Window> | |
| 2238 | + <RegID>198</RegID> | |
| 2239 | + <PaneID>198</PaneID> | |
| 2240 | + <IsVisible>1</IsVisible> | |
| 2241 | + <IsFloating>0</IsFloating> | |
| 2242 | + <IsTabbed>0</IsTabbed> | |
| 2243 | + <IsActivated>0</IsActivated> | |
| 2244 | + <MRUWidth>32767</MRUWidth> | |
| 2245 | + <PinState>0</PinState> | |
| 2246 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2247 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2248 | + <RectRecentDocked> | |
| 2249 | + <Len>16</Len> | |
| 2250 | + <Data>00000000D0010000C0030000A8020000</Data> | |
| 2251 | + </RectRecentDocked> | |
| 2252 | + <RectRecentFloat> | |
| 2253 | + <Len>16</Len> | |
| 2254 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2255 | + </RectRecentFloat> | |
| 2256 | + </Window> | |
| 2257 | + <Window> | |
| 2258 | + <RegID>199</RegID> | |
| 2259 | + <PaneID>199</PaneID> | |
| 2260 | + <IsVisible>1</IsVisible> | |
| 2261 | + <IsFloating>0</IsFloating> | |
| 2262 | + <IsTabbed>0</IsTabbed> | |
| 2263 | + <IsActivated>0</IsActivated> | |
| 2264 | + <MRUWidth>32767</MRUWidth> | |
| 2265 | + <PinState>0</PinState> | |
| 2266 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2267 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2268 | + <RectRecentDocked> | |
| 2269 | + <Len>16</Len> | |
| 2270 | + <Data>00000000C002000080070000E6030000</Data> | |
| 2271 | + </RectRecentDocked> | |
| 2272 | + <RectRecentFloat> | |
| 2273 | + <Len>16</Len> | |
| 2274 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2275 | + </RectRecentFloat> | |
| 2276 | + </Window> | |
| 2277 | + <Window> | |
| 2278 | + <RegID>203</RegID> | |
| 2279 | + <PaneID>203</PaneID> | |
| 2280 | + <IsVisible>0</IsVisible> | |
| 2281 | + <IsFloating>0</IsFloating> | |
| 2282 | + <IsTabbed>0</IsTabbed> | |
| 2283 | + <IsActivated>0</IsActivated> | |
| 2284 | + <MRUWidth>32767</MRUWidth> | |
| 2285 | + <PinState>0</PinState> | |
| 2286 | + <RecentFrameAlignment>8192</RecentFrameAlignment> | |
| 2287 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2288 | + <RectRecentDocked> | |
| 2289 | + <Len>16</Len> | |
| 2290 | + <Data>F7000000660000007D070000C6000000</Data> | |
| 2291 | + </RectRecentDocked> | |
| 2292 | + <RectRecentFloat> | |
| 2293 | + <Len>16</Len> | |
| 2294 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2295 | + </RectRecentFloat> | |
| 2296 | + </Window> | |
| 2297 | + <Window> | |
| 2298 | + <RegID>204</RegID> | |
| 2299 | + <PaneID>204</PaneID> | |
| 2300 | + <IsVisible>0</IsVisible> | |
| 2301 | + <IsFloating>0</IsFloating> | |
| 2302 | + <IsTabbed>0</IsTabbed> | |
| 2303 | + <IsActivated>0</IsActivated> | |
| 2304 | + <MRUWidth>32767</MRUWidth> | |
| 2305 | + <PinState>0</PinState> | |
| 2306 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2307 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2308 | + <RectRecentDocked> | |
| 2309 | + <Len>16</Len> | |
| 2310 | + <Data>F7000000660000007D070000C6000000</Data> | |
| 2311 | + </RectRecentDocked> | |
| 2312 | + <RectRecentFloat> | |
| 2313 | + <Len>16</Len> | |
| 2314 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2315 | + </RectRecentFloat> | |
| 2316 | + </Window> | |
| 2317 | + <Window> | |
| 2318 | + <RegID>221</RegID> | |
| 2319 | + <PaneID>221</PaneID> | |
| 2320 | + <IsVisible>0</IsVisible> | |
| 2321 | + <IsFloating>0</IsFloating> | |
| 2322 | + <IsTabbed>0</IsTabbed> | |
| 2323 | + <IsActivated>0</IsActivated> | |
| 2324 | + <MRUWidth>32767</MRUWidth> | |
| 2325 | + <PinState>0</PinState> | |
| 2326 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2327 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2328 | + <RectRecentDocked> | |
| 2329 | + <Len>16</Len> | |
| 2330 | + <Data>00000000000000000000000000000000</Data> | |
| 2331 | + </RectRecentDocked> | |
| 2332 | + <RectRecentFloat> | |
| 2333 | + <Len>16</Len> | |
| 2334 | + <Data>0A0000000A0000006E0000006E000000</Data> | |
| 2335 | + </RectRecentFloat> | |
| 2336 | + </Window> | |
| 2337 | + <Window> | |
| 2338 | + <RegID>2506</RegID> | |
| 2339 | + <PaneID>2506</PaneID> | |
| 2340 | + <IsVisible>0</IsVisible> | |
| 2341 | + <IsFloating>0</IsFloating> | |
| 2342 | + <IsTabbed>0</IsTabbed> | |
| 2343 | + <IsActivated>0</IsActivated> | |
| 2344 | + <MRUWidth>32767</MRUWidth> | |
| 2345 | + <PinState>0</PinState> | |
| 2346 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2347 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2348 | + <RectRecentDocked> | |
| 2349 | + <Len>16</Len> | |
| 2350 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2351 | + </RectRecentDocked> | |
| 2352 | + <RectRecentFloat> | |
| 2353 | + <Len>16</Len> | |
| 2354 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2355 | + </RectRecentFloat> | |
| 2356 | + </Window> | |
| 2357 | + <Window> | |
| 2358 | + <RegID>2507</RegID> | |
| 2359 | + <PaneID>2507</PaneID> | |
| 2360 | + <IsVisible>0</IsVisible> | |
| 2361 | + <IsFloating>0</IsFloating> | |
| 2362 | + <IsTabbed>0</IsTabbed> | |
| 2363 | + <IsActivated>0</IsActivated> | |
| 2364 | + <MRUWidth>32767</MRUWidth> | |
| 2365 | + <PinState>0</PinState> | |
| 2366 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2367 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2368 | + <RectRecentDocked> | |
| 2369 | + <Len>16</Len> | |
| 2370 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 2371 | + </RectRecentDocked> | |
| 2372 | + <RectRecentFloat> | |
| 2373 | + <Len>16</Len> | |
| 2374 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2375 | + </RectRecentFloat> | |
| 2376 | + </Window> | |
| 2377 | + <Window> | |
| 2378 | + <RegID>343</RegID> | |
| 2379 | + <PaneID>343</PaneID> | |
| 2380 | + <IsVisible>0</IsVisible> | |
| 2381 | + <IsFloating>0</IsFloating> | |
| 2382 | + <IsTabbed>0</IsTabbed> | |
| 2383 | + <IsActivated>0</IsActivated> | |
| 2384 | + <MRUWidth>32767</MRUWidth> | |
| 2385 | + <PinState>0</PinState> | |
| 2386 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2387 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2388 | + <RectRecentDocked> | |
| 2389 | + <Len>16</Len> | |
| 2390 | + <Data>F7000000660000007D070000C6000000</Data> | |
| 2391 | + </RectRecentDocked> | |
| 2392 | + <RectRecentFloat> | |
| 2393 | + <Len>16</Len> | |
| 2394 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2395 | + </RectRecentFloat> | |
| 2396 | + </Window> | |
| 2397 | + <Window> | |
| 2398 | + <RegID>346</RegID> | |
| 2399 | + <PaneID>346</PaneID> | |
| 2400 | + <IsVisible>0</IsVisible> | |
| 2401 | + <IsFloating>0</IsFloating> | |
| 2402 | + <IsTabbed>0</IsTabbed> | |
| 2403 | + <IsActivated>0</IsActivated> | |
| 2404 | + <MRUWidth>32767</MRUWidth> | |
| 2405 | + <PinState>0</PinState> | |
| 2406 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2407 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2408 | + <RectRecentDocked> | |
| 2409 | + <Len>16</Len> | |
| 2410 | + <Data>F7000000660000007D070000C6000000</Data> | |
| 2411 | + </RectRecentDocked> | |
| 2412 | + <RectRecentFloat> | |
| 2413 | + <Len>16</Len> | |
| 2414 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2415 | + </RectRecentFloat> | |
| 2416 | + </Window> | |
| 2417 | + <Window> | |
| 2418 | + <RegID>35141</RegID> | |
| 2419 | + <PaneID>35141</PaneID> | |
| 2420 | + <IsVisible>0</IsVisible> | |
| 2421 | + <IsFloating>0</IsFloating> | |
| 2422 | + <IsTabbed>0</IsTabbed> | |
| 2423 | + <IsActivated>0</IsActivated> | |
| 2424 | + <MRUWidth>32767</MRUWidth> | |
| 2425 | + <PinState>0</PinState> | |
| 2426 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2427 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2428 | + <RectRecentDocked> | |
| 2429 | + <Len>16</Len> | |
| 2430 | + <Data>F7000000660000007D070000C6000000</Data> | |
| 2431 | + </RectRecentDocked> | |
| 2432 | + <RectRecentFloat> | |
| 2433 | + <Len>16</Len> | |
| 2434 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2435 | + </RectRecentFloat> | |
| 2436 | + </Window> | |
| 2437 | + <Window> | |
| 2438 | + <RegID>35824</RegID> | |
| 2439 | + <PaneID>35824</PaneID> | |
| 2440 | + <IsVisible>0</IsVisible> | |
| 2441 | + <IsFloating>0</IsFloating> | |
| 2442 | + <IsTabbed>0</IsTabbed> | |
| 2443 | + <IsActivated>0</IsActivated> | |
| 2444 | + <MRUWidth>32767</MRUWidth> | |
| 2445 | + <PinState>0</PinState> | |
| 2446 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2447 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2448 | + <RectRecentDocked> | |
| 2449 | + <Len>16</Len> | |
| 2450 | + <Data>F7000000660000007D070000C6000000</Data> | |
| 2451 | + </RectRecentDocked> | |
| 2452 | + <RectRecentFloat> | |
| 2453 | + <Len>16</Len> | |
| 2454 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2455 | + </RectRecentFloat> | |
| 2456 | + </Window> | |
| 2457 | + <Window> | |
| 2458 | + <RegID>35885</RegID> | |
| 2459 | + <PaneID>35885</PaneID> | |
| 2460 | + <IsVisible>0</IsVisible> | |
| 2461 | + <IsFloating>0</IsFloating> | |
| 2462 | + <IsTabbed>0</IsTabbed> | |
| 2463 | + <IsActivated>0</IsActivated> | |
| 2464 | + <MRUWidth>32767</MRUWidth> | |
| 2465 | + <PinState>0</PinState> | |
| 2466 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2467 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2468 | + <RectRecentDocked> | |
| 2469 | + <Len>16</Len> | |
| 2470 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2471 | + </RectRecentDocked> | |
| 2472 | + <RectRecentFloat> | |
| 2473 | + <Len>16</Len> | |
| 2474 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2475 | + </RectRecentFloat> | |
| 2476 | + </Window> | |
| 2477 | + <Window> | |
| 2478 | + <RegID>35886</RegID> | |
| 2479 | + <PaneID>35886</PaneID> | |
| 2480 | + <IsVisible>0</IsVisible> | |
| 2481 | + <IsFloating>0</IsFloating> | |
| 2482 | + <IsTabbed>0</IsTabbed> | |
| 2483 | + <IsActivated>0</IsActivated> | |
| 2484 | + <MRUWidth>32767</MRUWidth> | |
| 2485 | + <PinState>0</PinState> | |
| 2486 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2487 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2488 | + <RectRecentDocked> | |
| 2489 | + <Len>16</Len> | |
| 2490 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2491 | + </RectRecentDocked> | |
| 2492 | + <RectRecentFloat> | |
| 2493 | + <Len>16</Len> | |
| 2494 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2495 | + </RectRecentFloat> | |
| 2496 | + </Window> | |
| 2497 | + <Window> | |
| 2498 | + <RegID>35887</RegID> | |
| 2499 | + <PaneID>35887</PaneID> | |
| 2500 | + <IsVisible>0</IsVisible> | |
| 2501 | + <IsFloating>0</IsFloating> | |
| 2502 | + <IsTabbed>0</IsTabbed> | |
| 2503 | + <IsActivated>0</IsActivated> | |
| 2504 | + <MRUWidth>32767</MRUWidth> | |
| 2505 | + <PinState>0</PinState> | |
| 2506 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2507 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2508 | + <RectRecentDocked> | |
| 2509 | + <Len>16</Len> | |
| 2510 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2511 | + </RectRecentDocked> | |
| 2512 | + <RectRecentFloat> | |
| 2513 | + <Len>16</Len> | |
| 2514 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2515 | + </RectRecentFloat> | |
| 2516 | + </Window> | |
| 2517 | + <Window> | |
| 2518 | + <RegID>35888</RegID> | |
| 2519 | + <PaneID>35888</PaneID> | |
| 2520 | + <IsVisible>0</IsVisible> | |
| 2521 | + <IsFloating>0</IsFloating> | |
| 2522 | + <IsTabbed>0</IsTabbed> | |
| 2523 | + <IsActivated>0</IsActivated> | |
| 2524 | + <MRUWidth>32767</MRUWidth> | |
| 2525 | + <PinState>0</PinState> | |
| 2526 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2527 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2528 | + <RectRecentDocked> | |
| 2529 | + <Len>16</Len> | |
| 2530 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2531 | + </RectRecentDocked> | |
| 2532 | + <RectRecentFloat> | |
| 2533 | + <Len>16</Len> | |
| 2534 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2535 | + </RectRecentFloat> | |
| 2536 | + </Window> | |
| 2537 | + <Window> | |
| 2538 | + <RegID>35889</RegID> | |
| 2539 | + <PaneID>35889</PaneID> | |
| 2540 | + <IsVisible>0</IsVisible> | |
| 2541 | + <IsFloating>0</IsFloating> | |
| 2542 | + <IsTabbed>0</IsTabbed> | |
| 2543 | + <IsActivated>0</IsActivated> | |
| 2544 | + <MRUWidth>32767</MRUWidth> | |
| 2545 | + <PinState>0</PinState> | |
| 2546 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2547 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2548 | + <RectRecentDocked> | |
| 2549 | + <Len>16</Len> | |
| 2550 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2551 | + </RectRecentDocked> | |
| 2552 | + <RectRecentFloat> | |
| 2553 | + <Len>16</Len> | |
| 2554 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2555 | + </RectRecentFloat> | |
| 2556 | + </Window> | |
| 2557 | + <Window> | |
| 2558 | + <RegID>35890</RegID> | |
| 2559 | + <PaneID>35890</PaneID> | |
| 2560 | + <IsVisible>0</IsVisible> | |
| 2561 | + <IsFloating>0</IsFloating> | |
| 2562 | + <IsTabbed>0</IsTabbed> | |
| 2563 | + <IsActivated>0</IsActivated> | |
| 2564 | + <MRUWidth>32767</MRUWidth> | |
| 2565 | + <PinState>0</PinState> | |
| 2566 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2567 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2568 | + <RectRecentDocked> | |
| 2569 | + <Len>16</Len> | |
| 2570 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2571 | + </RectRecentDocked> | |
| 2572 | + <RectRecentFloat> | |
| 2573 | + <Len>16</Len> | |
| 2574 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2575 | + </RectRecentFloat> | |
| 2576 | + </Window> | |
| 2577 | + <Window> | |
| 2578 | + <RegID>35891</RegID> | |
| 2579 | + <PaneID>35891</PaneID> | |
| 2580 | + <IsVisible>0</IsVisible> | |
| 2581 | + <IsFloating>0</IsFloating> | |
| 2582 | + <IsTabbed>0</IsTabbed> | |
| 2583 | + <IsActivated>0</IsActivated> | |
| 2584 | + <MRUWidth>32767</MRUWidth> | |
| 2585 | + <PinState>0</PinState> | |
| 2586 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2587 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2588 | + <RectRecentDocked> | |
| 2589 | + <Len>16</Len> | |
| 2590 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2591 | + </RectRecentDocked> | |
| 2592 | + <RectRecentFloat> | |
| 2593 | + <Len>16</Len> | |
| 2594 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2595 | + </RectRecentFloat> | |
| 2596 | + </Window> | |
| 2597 | + <Window> | |
| 2598 | + <RegID>35892</RegID> | |
| 2599 | + <PaneID>35892</PaneID> | |
| 2600 | + <IsVisible>0</IsVisible> | |
| 2601 | + <IsFloating>0</IsFloating> | |
| 2602 | + <IsTabbed>0</IsTabbed> | |
| 2603 | + <IsActivated>0</IsActivated> | |
| 2604 | + <MRUWidth>32767</MRUWidth> | |
| 2605 | + <PinState>0</PinState> | |
| 2606 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2607 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2608 | + <RectRecentDocked> | |
| 2609 | + <Len>16</Len> | |
| 2610 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2611 | + </RectRecentDocked> | |
| 2612 | + <RectRecentFloat> | |
| 2613 | + <Len>16</Len> | |
| 2614 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2615 | + </RectRecentFloat> | |
| 2616 | + </Window> | |
| 2617 | + <Window> | |
| 2618 | + <RegID>35893</RegID> | |
| 2619 | + <PaneID>35893</PaneID> | |
| 2620 | + <IsVisible>0</IsVisible> | |
| 2621 | + <IsFloating>0</IsFloating> | |
| 2622 | + <IsTabbed>0</IsTabbed> | |
| 2623 | + <IsActivated>0</IsActivated> | |
| 2624 | + <MRUWidth>32767</MRUWidth> | |
| 2625 | + <PinState>0</PinState> | |
| 2626 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2627 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2628 | + <RectRecentDocked> | |
| 2629 | + <Len>16</Len> | |
| 2630 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2631 | + </RectRecentDocked> | |
| 2632 | + <RectRecentFloat> | |
| 2633 | + <Len>16</Len> | |
| 2634 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2635 | + </RectRecentFloat> | |
| 2636 | + </Window> | |
| 2637 | + <Window> | |
| 2638 | + <RegID>35894</RegID> | |
| 2639 | + <PaneID>35894</PaneID> | |
| 2640 | + <IsVisible>0</IsVisible> | |
| 2641 | + <IsFloating>0</IsFloating> | |
| 2642 | + <IsTabbed>0</IsTabbed> | |
| 2643 | + <IsActivated>0</IsActivated> | |
| 2644 | + <MRUWidth>32767</MRUWidth> | |
| 2645 | + <PinState>0</PinState> | |
| 2646 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2647 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2648 | + <RectRecentDocked> | |
| 2649 | + <Len>16</Len> | |
| 2650 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2651 | + </RectRecentDocked> | |
| 2652 | + <RectRecentFloat> | |
| 2653 | + <Len>16</Len> | |
| 2654 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2655 | + </RectRecentFloat> | |
| 2656 | + </Window> | |
| 2657 | + <Window> | |
| 2658 | + <RegID>35895</RegID> | |
| 2659 | + <PaneID>35895</PaneID> | |
| 2660 | + <IsVisible>0</IsVisible> | |
| 2661 | + <IsFloating>0</IsFloating> | |
| 2662 | + <IsTabbed>0</IsTabbed> | |
| 2663 | + <IsActivated>0</IsActivated> | |
| 2664 | + <MRUWidth>32767</MRUWidth> | |
| 2665 | + <PinState>0</PinState> | |
| 2666 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2667 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2668 | + <RectRecentDocked> | |
| 2669 | + <Len>16</Len> | |
| 2670 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2671 | + </RectRecentDocked> | |
| 2672 | + <RectRecentFloat> | |
| 2673 | + <Len>16</Len> | |
| 2674 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2675 | + </RectRecentFloat> | |
| 2676 | + </Window> | |
| 2677 | + <Window> | |
| 2678 | + <RegID>35896</RegID> | |
| 2679 | + <PaneID>35896</PaneID> | |
| 2680 | + <IsVisible>0</IsVisible> | |
| 2681 | + <IsFloating>0</IsFloating> | |
| 2682 | + <IsTabbed>0</IsTabbed> | |
| 2683 | + <IsActivated>0</IsActivated> | |
| 2684 | + <MRUWidth>32767</MRUWidth> | |
| 2685 | + <PinState>0</PinState> | |
| 2686 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2687 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2688 | + <RectRecentDocked> | |
| 2689 | + <Len>16</Len> | |
| 2690 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2691 | + </RectRecentDocked> | |
| 2692 | + <RectRecentFloat> | |
| 2693 | + <Len>16</Len> | |
| 2694 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2695 | + </RectRecentFloat> | |
| 2696 | + </Window> | |
| 2697 | + <Window> | |
| 2698 | + <RegID>35897</RegID> | |
| 2699 | + <PaneID>35897</PaneID> | |
| 2700 | + <IsVisible>0</IsVisible> | |
| 2701 | + <IsFloating>0</IsFloating> | |
| 2702 | + <IsTabbed>0</IsTabbed> | |
| 2703 | + <IsActivated>0</IsActivated> | |
| 2704 | + <MRUWidth>32767</MRUWidth> | |
| 2705 | + <PinState>0</PinState> | |
| 2706 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2707 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2708 | + <RectRecentDocked> | |
| 2709 | + <Len>16</Len> | |
| 2710 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2711 | + </RectRecentDocked> | |
| 2712 | + <RectRecentFloat> | |
| 2713 | + <Len>16</Len> | |
| 2714 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2715 | + </RectRecentFloat> | |
| 2716 | + </Window> | |
| 2717 | + <Window> | |
| 2718 | + <RegID>35898</RegID> | |
| 2719 | + <PaneID>35898</PaneID> | |
| 2720 | + <IsVisible>0</IsVisible> | |
| 2721 | + <IsFloating>0</IsFloating> | |
| 2722 | + <IsTabbed>0</IsTabbed> | |
| 2723 | + <IsActivated>0</IsActivated> | |
| 2724 | + <MRUWidth>32767</MRUWidth> | |
| 2725 | + <PinState>0</PinState> | |
| 2726 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2727 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2728 | + <RectRecentDocked> | |
| 2729 | + <Len>16</Len> | |
| 2730 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2731 | + </RectRecentDocked> | |
| 2732 | + <RectRecentFloat> | |
| 2733 | + <Len>16</Len> | |
| 2734 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2735 | + </RectRecentFloat> | |
| 2736 | + </Window> | |
| 2737 | + <Window> | |
| 2738 | + <RegID>35899</RegID> | |
| 2739 | + <PaneID>35899</PaneID> | |
| 2740 | + <IsVisible>0</IsVisible> | |
| 2741 | + <IsFloating>0</IsFloating> | |
| 2742 | + <IsTabbed>0</IsTabbed> | |
| 2743 | + <IsActivated>0</IsActivated> | |
| 2744 | + <MRUWidth>32767</MRUWidth> | |
| 2745 | + <PinState>0</PinState> | |
| 2746 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2747 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2748 | + <RectRecentDocked> | |
| 2749 | + <Len>16</Len> | |
| 2750 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2751 | + </RectRecentDocked> | |
| 2752 | + <RectRecentFloat> | |
| 2753 | + <Len>16</Len> | |
| 2754 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2755 | + </RectRecentFloat> | |
| 2756 | + </Window> | |
| 2757 | + <Window> | |
| 2758 | + <RegID>35900</RegID> | |
| 2759 | + <PaneID>35900</PaneID> | |
| 2760 | + <IsVisible>0</IsVisible> | |
| 2761 | + <IsFloating>0</IsFloating> | |
| 2762 | + <IsTabbed>0</IsTabbed> | |
| 2763 | + <IsActivated>0</IsActivated> | |
| 2764 | + <MRUWidth>32767</MRUWidth> | |
| 2765 | + <PinState>0</PinState> | |
| 2766 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2767 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2768 | + <RectRecentDocked> | |
| 2769 | + <Len>16</Len> | |
| 2770 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2771 | + </RectRecentDocked> | |
| 2772 | + <RectRecentFloat> | |
| 2773 | + <Len>16</Len> | |
| 2774 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2775 | + </RectRecentFloat> | |
| 2776 | + </Window> | |
| 2777 | + <Window> | |
| 2778 | + <RegID>35901</RegID> | |
| 2779 | + <PaneID>35901</PaneID> | |
| 2780 | + <IsVisible>0</IsVisible> | |
| 2781 | + <IsFloating>0</IsFloating> | |
| 2782 | + <IsTabbed>0</IsTabbed> | |
| 2783 | + <IsActivated>0</IsActivated> | |
| 2784 | + <MRUWidth>32767</MRUWidth> | |
| 2785 | + <PinState>0</PinState> | |
| 2786 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2787 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2788 | + <RectRecentDocked> | |
| 2789 | + <Len>16</Len> | |
| 2790 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2791 | + </RectRecentDocked> | |
| 2792 | + <RectRecentFloat> | |
| 2793 | + <Len>16</Len> | |
| 2794 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2795 | + </RectRecentFloat> | |
| 2796 | + </Window> | |
| 2797 | + <Window> | |
| 2798 | + <RegID>35902</RegID> | |
| 2799 | + <PaneID>35902</PaneID> | |
| 2800 | + <IsVisible>0</IsVisible> | |
| 2801 | + <IsFloating>0</IsFloating> | |
| 2802 | + <IsTabbed>0</IsTabbed> | |
| 2803 | + <IsActivated>0</IsActivated> | |
| 2804 | + <MRUWidth>32767</MRUWidth> | |
| 2805 | + <PinState>0</PinState> | |
| 2806 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2807 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2808 | + <RectRecentDocked> | |
| 2809 | + <Len>16</Len> | |
| 2810 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2811 | + </RectRecentDocked> | |
| 2812 | + <RectRecentFloat> | |
| 2813 | + <Len>16</Len> | |
| 2814 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2815 | + </RectRecentFloat> | |
| 2816 | + </Window> | |
| 2817 | + <Window> | |
| 2818 | + <RegID>35903</RegID> | |
| 2819 | + <PaneID>35903</PaneID> | |
| 2820 | + <IsVisible>0</IsVisible> | |
| 2821 | + <IsFloating>0</IsFloating> | |
| 2822 | + <IsTabbed>0</IsTabbed> | |
| 2823 | + <IsActivated>0</IsActivated> | |
| 2824 | + <MRUWidth>32767</MRUWidth> | |
| 2825 | + <PinState>0</PinState> | |
| 2826 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2827 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2828 | + <RectRecentDocked> | |
| 2829 | + <Len>16</Len> | |
| 2830 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2831 | + </RectRecentDocked> | |
| 2832 | + <RectRecentFloat> | |
| 2833 | + <Len>16</Len> | |
| 2834 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2835 | + </RectRecentFloat> | |
| 2836 | + </Window> | |
| 2837 | + <Window> | |
| 2838 | + <RegID>35904</RegID> | |
| 2839 | + <PaneID>35904</PaneID> | |
| 2840 | + <IsVisible>0</IsVisible> | |
| 2841 | + <IsFloating>0</IsFloating> | |
| 2842 | + <IsTabbed>0</IsTabbed> | |
| 2843 | + <IsActivated>0</IsActivated> | |
| 2844 | + <MRUWidth>32767</MRUWidth> | |
| 2845 | + <PinState>0</PinState> | |
| 2846 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2847 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2848 | + <RectRecentDocked> | |
| 2849 | + <Len>16</Len> | |
| 2850 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2851 | + </RectRecentDocked> | |
| 2852 | + <RectRecentFloat> | |
| 2853 | + <Len>16</Len> | |
| 2854 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2855 | + </RectRecentFloat> | |
| 2856 | + </Window> | |
| 2857 | + <Window> | |
| 2858 | + <RegID>35905</RegID> | |
| 2859 | + <PaneID>35905</PaneID> | |
| 2860 | + <IsVisible>0</IsVisible> | |
| 2861 | + <IsFloating>0</IsFloating> | |
| 2862 | + <IsTabbed>0</IsTabbed> | |
| 2863 | + <IsActivated>0</IsActivated> | |
| 2864 | + <MRUWidth>32767</MRUWidth> | |
| 2865 | + <PinState>0</PinState> | |
| 2866 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2867 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2868 | + <RectRecentDocked> | |
| 2869 | + <Len>16</Len> | |
| 2870 | + <Data>A3040000660000008D05000010020000</Data> | |
| 2871 | + </RectRecentDocked> | |
| 2872 | + <RectRecentFloat> | |
| 2873 | + <Len>16</Len> | |
| 2874 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2875 | + </RectRecentFloat> | |
| 2876 | + </Window> | |
| 2877 | + <Window> | |
| 2878 | + <RegID>38003</RegID> | |
| 2879 | + <PaneID>38003</PaneID> | |
| 2880 | + <IsVisible>1</IsVisible> | |
| 2881 | + <IsFloating>0</IsFloating> | |
| 2882 | + <IsTabbed>0</IsTabbed> | |
| 2883 | + <IsActivated>0</IsActivated> | |
| 2884 | + <MRUWidth>32767</MRUWidth> | |
| 2885 | + <PinState>0</PinState> | |
| 2886 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2887 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2888 | + <RectRecentDocked> | |
| 2889 | + <Len>16</Len> | |
| 2890 | + <Data>0300000066000000ED000000B3010000</Data> | |
| 2891 | + </RectRecentDocked> | |
| 2892 | + <RectRecentFloat> | |
| 2893 | + <Len>16</Len> | |
| 2894 | + <Data>8A000000A1000000A6010000E1020000</Data> | |
| 2895 | + </RectRecentFloat> | |
| 2896 | + </Window> | |
| 2897 | + <Window> | |
| 2898 | + <RegID>38007</RegID> | |
| 2899 | + <PaneID>38007</PaneID> | |
| 2900 | + <IsVisible>0</IsVisible> | |
| 2901 | + <IsFloating>0</IsFloating> | |
| 2902 | + <IsTabbed>0</IsTabbed> | |
| 2903 | + <IsActivated>0</IsActivated> | |
| 2904 | + <MRUWidth>32767</MRUWidth> | |
| 2905 | + <PinState>0</PinState> | |
| 2906 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2907 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2908 | + <RectRecentDocked> | |
| 2909 | + <Len>16</Len> | |
| 2910 | + <Data>03000000C30200007D070000CD030000</Data> | |
| 2911 | + </RectRecentDocked> | |
| 2912 | + <RectRecentFloat> | |
| 2913 | + <Len>16</Len> | |
| 2914 | + <Data>8A000000A10000005203000031010000</Data> | |
| 2915 | + </RectRecentFloat> | |
| 2916 | + </Window> | |
| 2917 | + <Window> | |
| 2918 | + <RegID>436</RegID> | |
| 2919 | + <PaneID>436</PaneID> | |
| 2920 | + <IsVisible>0</IsVisible> | |
| 2921 | + <IsFloating>0</IsFloating> | |
| 2922 | + <IsTabbed>0</IsTabbed> | |
| 2923 | + <IsActivated>0</IsActivated> | |
| 2924 | + <MRUWidth>32767</MRUWidth> | |
| 2925 | + <PinState>0</PinState> | |
| 2926 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2927 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2928 | + <RectRecentDocked> | |
| 2929 | + <Len>16</Len> | |
| 2930 | + <Data>03000000C30200007D070000CD030000</Data> | |
| 2931 | + </RectRecentDocked> | |
| 2932 | + <RectRecentFloat> | |
| 2933 | + <Len>16</Len> | |
| 2934 | + <Data>8A000000A1000000A6010000E1020000</Data> | |
| 2935 | + </RectRecentFloat> | |
| 2936 | + </Window> | |
| 2937 | + <Window> | |
| 2938 | + <RegID>437</RegID> | |
| 2939 | + <PaneID>437</PaneID> | |
| 2940 | + <IsVisible>0</IsVisible> | |
| 2941 | + <IsFloating>0</IsFloating> | |
| 2942 | + <IsTabbed>0</IsTabbed> | |
| 2943 | + <IsActivated>0</IsActivated> | |
| 2944 | + <MRUWidth>32767</MRUWidth> | |
| 2945 | + <PinState>0</PinState> | |
| 2946 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2947 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2948 | + <RectRecentDocked> | |
| 2949 | + <Len>16</Len> | |
| 2950 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 2951 | + </RectRecentDocked> | |
| 2952 | + <RectRecentFloat> | |
| 2953 | + <Len>16</Len> | |
| 2954 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2955 | + </RectRecentFloat> | |
| 2956 | + </Window> | |
| 2957 | + <Window> | |
| 2958 | + <RegID>440</RegID> | |
| 2959 | + <PaneID>440</PaneID> | |
| 2960 | + <IsVisible>0</IsVisible> | |
| 2961 | + <IsFloating>0</IsFloating> | |
| 2962 | + <IsTabbed>0</IsTabbed> | |
| 2963 | + <IsActivated>0</IsActivated> | |
| 2964 | + <MRUWidth>32767</MRUWidth> | |
| 2965 | + <PinState>0</PinState> | |
| 2966 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 2967 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2968 | + <RectRecentDocked> | |
| 2969 | + <Len>16</Len> | |
| 2970 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 2971 | + </RectRecentDocked> | |
| 2972 | + <RectRecentFloat> | |
| 2973 | + <Len>16</Len> | |
| 2974 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 2975 | + </RectRecentFloat> | |
| 2976 | + </Window> | |
| 2977 | + <Window> | |
| 2978 | + <RegID>463</RegID> | |
| 2979 | + <PaneID>463</PaneID> | |
| 2980 | + <IsVisible>0</IsVisible> | |
| 2981 | + <IsFloating>0</IsFloating> | |
| 2982 | + <IsTabbed>0</IsTabbed> | |
| 2983 | + <IsActivated>0</IsActivated> | |
| 2984 | + <MRUWidth>32767</MRUWidth> | |
| 2985 | + <PinState>0</PinState> | |
| 2986 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 2987 | + <RecentRowIndex>0</RecentRowIndex> | |
| 2988 | + <RectRecentDocked> | |
| 2989 | + <Len>16</Len> | |
| 2990 | + <Data>03000000C30200007D070000CD030000</Data> | |
| 2991 | + </RectRecentDocked> | |
| 2992 | + <RectRecentFloat> | |
| 2993 | + <Len>16</Len> | |
| 2994 | + <Data>8A000000A1000000A6010000E1020000</Data> | |
| 2995 | + </RectRecentFloat> | |
| 2996 | + </Window> | |
| 2997 | + <Window> | |
| 2998 | + <RegID>466</RegID> | |
| 2999 | + <PaneID>466</PaneID> | |
| 3000 | + <IsVisible>0</IsVisible> | |
| 3001 | + <IsFloating>0</IsFloating> | |
| 3002 | + <IsTabbed>0</IsTabbed> | |
| 3003 | + <IsActivated>0</IsActivated> | |
| 3004 | + <MRUWidth>32767</MRUWidth> | |
| 3005 | + <PinState>0</PinState> | |
| 3006 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3007 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3008 | + <RectRecentDocked> | |
| 3009 | + <Len>16</Len> | |
| 3010 | + <Data>03000000C30200007D070000CD030000</Data> | |
| 3011 | + </RectRecentDocked> | |
| 3012 | + <RectRecentFloat> | |
| 3013 | + <Len>16</Len> | |
| 3014 | + <Data>8A000000A1000000A6010000E1020000</Data> | |
| 3015 | + </RectRecentFloat> | |
| 3016 | + </Window> | |
| 3017 | + <Window> | |
| 3018 | + <RegID>470</RegID> | |
| 3019 | + <PaneID>470</PaneID> | |
| 3020 | + <IsVisible>0</IsVisible> | |
| 3021 | + <IsFloating>0</IsFloating> | |
| 3022 | + <IsTabbed>0</IsTabbed> | |
| 3023 | + <IsActivated>0</IsActivated> | |
| 3024 | + <MRUWidth>32767</MRUWidth> | |
| 3025 | + <PinState>0</PinState> | |
| 3026 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3027 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3028 | + <RectRecentDocked> | |
| 3029 | + <Len>16</Len> | |
| 3030 | + <Data>F7000000660000007D070000C6000000</Data> | |
| 3031 | + </RectRecentDocked> | |
| 3032 | + <RectRecentFloat> | |
| 3033 | + <Len>16</Len> | |
| 3034 | + <Data>8A000000A10000005203000031010000</Data> | |
| 3035 | + </RectRecentFloat> | |
| 3036 | + </Window> | |
| 3037 | + <Window> | |
| 3038 | + <RegID>50000</RegID> | |
| 3039 | + <PaneID>50000</PaneID> | |
| 3040 | + <IsVisible>0</IsVisible> | |
| 3041 | + <IsFloating>0</IsFloating> | |
| 3042 | + <IsTabbed>0</IsTabbed> | |
| 3043 | + <IsActivated>0</IsActivated> | |
| 3044 | + <MRUWidth>32767</MRUWidth> | |
| 3045 | + <PinState>0</PinState> | |
| 3046 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3047 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3048 | + <RectRecentDocked> | |
| 3049 | + <Len>16</Len> | |
| 3050 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3051 | + </RectRecentDocked> | |
| 3052 | + <RectRecentFloat> | |
| 3053 | + <Len>16</Len> | |
| 3054 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3055 | + </RectRecentFloat> | |
| 3056 | + </Window> | |
| 3057 | + <Window> | |
| 3058 | + <RegID>50001</RegID> | |
| 3059 | + <PaneID>50001</PaneID> | |
| 3060 | + <IsVisible>0</IsVisible> | |
| 3061 | + <IsFloating>0</IsFloating> | |
| 3062 | + <IsTabbed>0</IsTabbed> | |
| 3063 | + <IsActivated>0</IsActivated> | |
| 3064 | + <MRUWidth>32767</MRUWidth> | |
| 3065 | + <PinState>0</PinState> | |
| 3066 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3067 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3068 | + <RectRecentDocked> | |
| 3069 | + <Len>16</Len> | |
| 3070 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3071 | + </RectRecentDocked> | |
| 3072 | + <RectRecentFloat> | |
| 3073 | + <Len>16</Len> | |
| 3074 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3075 | + </RectRecentFloat> | |
| 3076 | + </Window> | |
| 3077 | + <Window> | |
| 3078 | + <RegID>50002</RegID> | |
| 3079 | + <PaneID>50002</PaneID> | |
| 3080 | + <IsVisible>0</IsVisible> | |
| 3081 | + <IsFloating>0</IsFloating> | |
| 3082 | + <IsTabbed>0</IsTabbed> | |
| 3083 | + <IsActivated>0</IsActivated> | |
| 3084 | + <MRUWidth>32767</MRUWidth> | |
| 3085 | + <PinState>0</PinState> | |
| 3086 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3087 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3088 | + <RectRecentDocked> | |
| 3089 | + <Len>16</Len> | |
| 3090 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3091 | + </RectRecentDocked> | |
| 3092 | + <RectRecentFloat> | |
| 3093 | + <Len>16</Len> | |
| 3094 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3095 | + </RectRecentFloat> | |
| 3096 | + </Window> | |
| 3097 | + <Window> | |
| 3098 | + <RegID>50003</RegID> | |
| 3099 | + <PaneID>50003</PaneID> | |
| 3100 | + <IsVisible>0</IsVisible> | |
| 3101 | + <IsFloating>0</IsFloating> | |
| 3102 | + <IsTabbed>0</IsTabbed> | |
| 3103 | + <IsActivated>0</IsActivated> | |
| 3104 | + <MRUWidth>32767</MRUWidth> | |
| 3105 | + <PinState>0</PinState> | |
| 3106 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3107 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3108 | + <RectRecentDocked> | |
| 3109 | + <Len>16</Len> | |
| 3110 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3111 | + </RectRecentDocked> | |
| 3112 | + <RectRecentFloat> | |
| 3113 | + <Len>16</Len> | |
| 3114 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3115 | + </RectRecentFloat> | |
| 3116 | + </Window> | |
| 3117 | + <Window> | |
| 3118 | + <RegID>50004</RegID> | |
| 3119 | + <PaneID>50004</PaneID> | |
| 3120 | + <IsVisible>0</IsVisible> | |
| 3121 | + <IsFloating>0</IsFloating> | |
| 3122 | + <IsTabbed>0</IsTabbed> | |
| 3123 | + <IsActivated>0</IsActivated> | |
| 3124 | + <MRUWidth>32767</MRUWidth> | |
| 3125 | + <PinState>0</PinState> | |
| 3126 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3127 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3128 | + <RectRecentDocked> | |
| 3129 | + <Len>16</Len> | |
| 3130 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3131 | + </RectRecentDocked> | |
| 3132 | + <RectRecentFloat> | |
| 3133 | + <Len>16</Len> | |
| 3134 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3135 | + </RectRecentFloat> | |
| 3136 | + </Window> | |
| 3137 | + <Window> | |
| 3138 | + <RegID>50005</RegID> | |
| 3139 | + <PaneID>50005</PaneID> | |
| 3140 | + <IsVisible>0</IsVisible> | |
| 3141 | + <IsFloating>0</IsFloating> | |
| 3142 | + <IsTabbed>0</IsTabbed> | |
| 3143 | + <IsActivated>0</IsActivated> | |
| 3144 | + <MRUWidth>32767</MRUWidth> | |
| 3145 | + <PinState>0</PinState> | |
| 3146 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3147 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3148 | + <RectRecentDocked> | |
| 3149 | + <Len>16</Len> | |
| 3150 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3151 | + </RectRecentDocked> | |
| 3152 | + <RectRecentFloat> | |
| 3153 | + <Len>16</Len> | |
| 3154 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3155 | + </RectRecentFloat> | |
| 3156 | + </Window> | |
| 3157 | + <Window> | |
| 3158 | + <RegID>50006</RegID> | |
| 3159 | + <PaneID>50006</PaneID> | |
| 3160 | + <IsVisible>0</IsVisible> | |
| 3161 | + <IsFloating>0</IsFloating> | |
| 3162 | + <IsTabbed>0</IsTabbed> | |
| 3163 | + <IsActivated>0</IsActivated> | |
| 3164 | + <MRUWidth>32767</MRUWidth> | |
| 3165 | + <PinState>0</PinState> | |
| 3166 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3167 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3168 | + <RectRecentDocked> | |
| 3169 | + <Len>16</Len> | |
| 3170 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3171 | + </RectRecentDocked> | |
| 3172 | + <RectRecentFloat> | |
| 3173 | + <Len>16</Len> | |
| 3174 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3175 | + </RectRecentFloat> | |
| 3176 | + </Window> | |
| 3177 | + <Window> | |
| 3178 | + <RegID>50007</RegID> | |
| 3179 | + <PaneID>50007</PaneID> | |
| 3180 | + <IsVisible>0</IsVisible> | |
| 3181 | + <IsFloating>0</IsFloating> | |
| 3182 | + <IsTabbed>0</IsTabbed> | |
| 3183 | + <IsActivated>0</IsActivated> | |
| 3184 | + <MRUWidth>32767</MRUWidth> | |
| 3185 | + <PinState>0</PinState> | |
| 3186 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3187 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3188 | + <RectRecentDocked> | |
| 3189 | + <Len>16</Len> | |
| 3190 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3191 | + </RectRecentDocked> | |
| 3192 | + <RectRecentFloat> | |
| 3193 | + <Len>16</Len> | |
| 3194 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3195 | + </RectRecentFloat> | |
| 3196 | + </Window> | |
| 3197 | + <Window> | |
| 3198 | + <RegID>50008</RegID> | |
| 3199 | + <PaneID>50008</PaneID> | |
| 3200 | + <IsVisible>0</IsVisible> | |
| 3201 | + <IsFloating>0</IsFloating> | |
| 3202 | + <IsTabbed>0</IsTabbed> | |
| 3203 | + <IsActivated>0</IsActivated> | |
| 3204 | + <MRUWidth>32767</MRUWidth> | |
| 3205 | + <PinState>0</PinState> | |
| 3206 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3207 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3208 | + <RectRecentDocked> | |
| 3209 | + <Len>16</Len> | |
| 3210 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3211 | + </RectRecentDocked> | |
| 3212 | + <RectRecentFloat> | |
| 3213 | + <Len>16</Len> | |
| 3214 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3215 | + </RectRecentFloat> | |
| 3216 | + </Window> | |
| 3217 | + <Window> | |
| 3218 | + <RegID>50009</RegID> | |
| 3219 | + <PaneID>50009</PaneID> | |
| 3220 | + <IsVisible>0</IsVisible> | |
| 3221 | + <IsFloating>0</IsFloating> | |
| 3222 | + <IsTabbed>0</IsTabbed> | |
| 3223 | + <IsActivated>0</IsActivated> | |
| 3224 | + <MRUWidth>32767</MRUWidth> | |
| 3225 | + <PinState>0</PinState> | |
| 3226 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3227 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3228 | + <RectRecentDocked> | |
| 3229 | + <Len>16</Len> | |
| 3230 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3231 | + </RectRecentDocked> | |
| 3232 | + <RectRecentFloat> | |
| 3233 | + <Len>16</Len> | |
| 3234 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3235 | + </RectRecentFloat> | |
| 3236 | + </Window> | |
| 3237 | + <Window> | |
| 3238 | + <RegID>50010</RegID> | |
| 3239 | + <PaneID>50010</PaneID> | |
| 3240 | + <IsVisible>0</IsVisible> | |
| 3241 | + <IsFloating>0</IsFloating> | |
| 3242 | + <IsTabbed>0</IsTabbed> | |
| 3243 | + <IsActivated>0</IsActivated> | |
| 3244 | + <MRUWidth>32767</MRUWidth> | |
| 3245 | + <PinState>0</PinState> | |
| 3246 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3247 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3248 | + <RectRecentDocked> | |
| 3249 | + <Len>16</Len> | |
| 3250 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3251 | + </RectRecentDocked> | |
| 3252 | + <RectRecentFloat> | |
| 3253 | + <Len>16</Len> | |
| 3254 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3255 | + </RectRecentFloat> | |
| 3256 | + </Window> | |
| 3257 | + <Window> | |
| 3258 | + <RegID>50011</RegID> | |
| 3259 | + <PaneID>50011</PaneID> | |
| 3260 | + <IsVisible>0</IsVisible> | |
| 3261 | + <IsFloating>0</IsFloating> | |
| 3262 | + <IsTabbed>0</IsTabbed> | |
| 3263 | + <IsActivated>0</IsActivated> | |
| 3264 | + <MRUWidth>32767</MRUWidth> | |
| 3265 | + <PinState>0</PinState> | |
| 3266 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3267 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3268 | + <RectRecentDocked> | |
| 3269 | + <Len>16</Len> | |
| 3270 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3271 | + </RectRecentDocked> | |
| 3272 | + <RectRecentFloat> | |
| 3273 | + <Len>16</Len> | |
| 3274 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3275 | + </RectRecentFloat> | |
| 3276 | + </Window> | |
| 3277 | + <Window> | |
| 3278 | + <RegID>50012</RegID> | |
| 3279 | + <PaneID>50012</PaneID> | |
| 3280 | + <IsVisible>0</IsVisible> | |
| 3281 | + <IsFloating>0</IsFloating> | |
| 3282 | + <IsTabbed>0</IsTabbed> | |
| 3283 | + <IsActivated>0</IsActivated> | |
| 3284 | + <MRUWidth>32767</MRUWidth> | |
| 3285 | + <PinState>0</PinState> | |
| 3286 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3287 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3288 | + <RectRecentDocked> | |
| 3289 | + <Len>16</Len> | |
| 3290 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3291 | + </RectRecentDocked> | |
| 3292 | + <RectRecentFloat> | |
| 3293 | + <Len>16</Len> | |
| 3294 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3295 | + </RectRecentFloat> | |
| 3296 | + </Window> | |
| 3297 | + <Window> | |
| 3298 | + <RegID>50013</RegID> | |
| 3299 | + <PaneID>50013</PaneID> | |
| 3300 | + <IsVisible>0</IsVisible> | |
| 3301 | + <IsFloating>0</IsFloating> | |
| 3302 | + <IsTabbed>0</IsTabbed> | |
| 3303 | + <IsActivated>0</IsActivated> | |
| 3304 | + <MRUWidth>32767</MRUWidth> | |
| 3305 | + <PinState>0</PinState> | |
| 3306 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3307 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3308 | + <RectRecentDocked> | |
| 3309 | + <Len>16</Len> | |
| 3310 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3311 | + </RectRecentDocked> | |
| 3312 | + <RectRecentFloat> | |
| 3313 | + <Len>16</Len> | |
| 3314 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3315 | + </RectRecentFloat> | |
| 3316 | + </Window> | |
| 3317 | + <Window> | |
| 3318 | + <RegID>50014</RegID> | |
| 3319 | + <PaneID>50014</PaneID> | |
| 3320 | + <IsVisible>0</IsVisible> | |
| 3321 | + <IsFloating>0</IsFloating> | |
| 3322 | + <IsTabbed>0</IsTabbed> | |
| 3323 | + <IsActivated>0</IsActivated> | |
| 3324 | + <MRUWidth>32767</MRUWidth> | |
| 3325 | + <PinState>0</PinState> | |
| 3326 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3327 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3328 | + <RectRecentDocked> | |
| 3329 | + <Len>16</Len> | |
| 3330 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3331 | + </RectRecentDocked> | |
| 3332 | + <RectRecentFloat> | |
| 3333 | + <Len>16</Len> | |
| 3334 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3335 | + </RectRecentFloat> | |
| 3336 | + </Window> | |
| 3337 | + <Window> | |
| 3338 | + <RegID>50015</RegID> | |
| 3339 | + <PaneID>50015</PaneID> | |
| 3340 | + <IsVisible>0</IsVisible> | |
| 3341 | + <IsFloating>0</IsFloating> | |
| 3342 | + <IsTabbed>0</IsTabbed> | |
| 3343 | + <IsActivated>0</IsActivated> | |
| 3344 | + <MRUWidth>32767</MRUWidth> | |
| 3345 | + <PinState>0</PinState> | |
| 3346 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3347 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3348 | + <RectRecentDocked> | |
| 3349 | + <Len>16</Len> | |
| 3350 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3351 | + </RectRecentDocked> | |
| 3352 | + <RectRecentFloat> | |
| 3353 | + <Len>16</Len> | |
| 3354 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3355 | + </RectRecentFloat> | |
| 3356 | + </Window> | |
| 3357 | + <Window> | |
| 3358 | + <RegID>50016</RegID> | |
| 3359 | + <PaneID>50016</PaneID> | |
| 3360 | + <IsVisible>0</IsVisible> | |
| 3361 | + <IsFloating>0</IsFloating> | |
| 3362 | + <IsTabbed>0</IsTabbed> | |
| 3363 | + <IsActivated>0</IsActivated> | |
| 3364 | + <MRUWidth>32767</MRUWidth> | |
| 3365 | + <PinState>0</PinState> | |
| 3366 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3367 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3368 | + <RectRecentDocked> | |
| 3369 | + <Len>16</Len> | |
| 3370 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3371 | + </RectRecentDocked> | |
| 3372 | + <RectRecentFloat> | |
| 3373 | + <Len>16</Len> | |
| 3374 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3375 | + </RectRecentFloat> | |
| 3376 | + </Window> | |
| 3377 | + <Window> | |
| 3378 | + <RegID>50017</RegID> | |
| 3379 | + <PaneID>50017</PaneID> | |
| 3380 | + <IsVisible>0</IsVisible> | |
| 3381 | + <IsFloating>0</IsFloating> | |
| 3382 | + <IsTabbed>0</IsTabbed> | |
| 3383 | + <IsActivated>0</IsActivated> | |
| 3384 | + <MRUWidth>32767</MRUWidth> | |
| 3385 | + <PinState>0</PinState> | |
| 3386 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3387 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3388 | + <RectRecentDocked> | |
| 3389 | + <Len>16</Len> | |
| 3390 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3391 | + </RectRecentDocked> | |
| 3392 | + <RectRecentFloat> | |
| 3393 | + <Len>16</Len> | |
| 3394 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3395 | + </RectRecentFloat> | |
| 3396 | + </Window> | |
| 3397 | + <Window> | |
| 3398 | + <RegID>50018</RegID> | |
| 3399 | + <PaneID>50018</PaneID> | |
| 3400 | + <IsVisible>0</IsVisible> | |
| 3401 | + <IsFloating>0</IsFloating> | |
| 3402 | + <IsTabbed>0</IsTabbed> | |
| 3403 | + <IsActivated>0</IsActivated> | |
| 3404 | + <MRUWidth>32767</MRUWidth> | |
| 3405 | + <PinState>0</PinState> | |
| 3406 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3407 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3408 | + <RectRecentDocked> | |
| 3409 | + <Len>16</Len> | |
| 3410 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3411 | + </RectRecentDocked> | |
| 3412 | + <RectRecentFloat> | |
| 3413 | + <Len>16</Len> | |
| 3414 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3415 | + </RectRecentFloat> | |
| 3416 | + </Window> | |
| 3417 | + <Window> | |
| 3418 | + <RegID>50019</RegID> | |
| 3419 | + <PaneID>50019</PaneID> | |
| 3420 | + <IsVisible>0</IsVisible> | |
| 3421 | + <IsFloating>0</IsFloating> | |
| 3422 | + <IsTabbed>0</IsTabbed> | |
| 3423 | + <IsActivated>0</IsActivated> | |
| 3424 | + <MRUWidth>32767</MRUWidth> | |
| 3425 | + <PinState>0</PinState> | |
| 3426 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3427 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3428 | + <RectRecentDocked> | |
| 3429 | + <Len>16</Len> | |
| 3430 | + <Data>A3040000660000008D05000010020000</Data> | |
| 3431 | + </RectRecentDocked> | |
| 3432 | + <RectRecentFloat> | |
| 3433 | + <Len>16</Len> | |
| 3434 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3435 | + </RectRecentFloat> | |
| 3436 | + </Window> | |
| 3437 | + <Window> | |
| 3438 | + <RegID>59392</RegID> | |
| 3439 | + <PaneID>59392</PaneID> | |
| 3440 | + <IsVisible>1</IsVisible> | |
| 3441 | + <IsFloating>0</IsFloating> | |
| 3442 | + <IsTabbed>0</IsTabbed> | |
| 3443 | + <IsActivated>0</IsActivated> | |
| 3444 | + <MRUWidth>953</MRUWidth> | |
| 3445 | + <PinState>0</PinState> | |
| 3446 | + <RecentFrameAlignment>8192</RecentFrameAlignment> | |
| 3447 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3448 | + <RectRecentDocked> | |
| 3449 | + <Len>16</Len> | |
| 3450 | + <Data>0000000000000000C40300001C000000</Data> | |
| 3451 | + </RectRecentDocked> | |
| 3452 | + <RectRecentFloat> | |
| 3453 | + <Len>16</Len> | |
| 3454 | + <Data>0A0000000A0000006E0000006E000000</Data> | |
| 3455 | + </RectRecentFloat> | |
| 3456 | + </Window> | |
| 3457 | + <Window> | |
| 3458 | + <RegID>59393</RegID> | |
| 3459 | + <PaneID>0</PaneID> | |
| 3460 | + <IsVisible>1</IsVisible> | |
| 3461 | + <IsFloating>0</IsFloating> | |
| 3462 | + <IsTabbed>0</IsTabbed> | |
| 3463 | + <IsActivated>0</IsActivated> | |
| 3464 | + <MRUWidth>32767</MRUWidth> | |
| 3465 | + <PinState>0</PinState> | |
| 3466 | + <RecentFrameAlignment>4096</RecentFrameAlignment> | |
| 3467 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3468 | + <RectRecentDocked> | |
| 3469 | + <Len>16</Len> | |
| 3470 | + <Data>00000000E603000080070000F9030000</Data> | |
| 3471 | + </RectRecentDocked> | |
| 3472 | + <RectRecentFloat> | |
| 3473 | + <Len>16</Len> | |
| 3474 | + <Data>0A0000000A0000006E0000006E000000</Data> | |
| 3475 | + </RectRecentFloat> | |
| 3476 | + </Window> | |
| 3477 | + <Window> | |
| 3478 | + <RegID>59399</RegID> | |
| 3479 | + <PaneID>59399</PaneID> | |
| 3480 | + <IsVisible>0</IsVisible> | |
| 3481 | + <IsFloating>0</IsFloating> | |
| 3482 | + <IsTabbed>0</IsTabbed> | |
| 3483 | + <IsActivated>0</IsActivated> | |
| 3484 | + <MRUWidth>476</MRUWidth> | |
| 3485 | + <PinState>0</PinState> | |
| 3486 | + <RecentFrameAlignment>8192</RecentFrameAlignment> | |
| 3487 | + <RecentRowIndex>1</RecentRowIndex> | |
| 3488 | + <RectRecentDocked> | |
| 3489 | + <Len>16</Len> | |
| 3490 | + <Data>000000001C000000E701000038000000</Data> | |
| 3491 | + </RectRecentDocked> | |
| 3492 | + <RectRecentFloat> | |
| 3493 | + <Len>16</Len> | |
| 3494 | + <Data>0A0000000A0000006E0000006E000000</Data> | |
| 3495 | + </RectRecentFloat> | |
| 3496 | + </Window> | |
| 3497 | + <Window> | |
| 3498 | + <RegID>59400</RegID> | |
| 3499 | + <PaneID>59400</PaneID> | |
| 3500 | + <IsVisible>1</IsVisible> | |
| 3501 | + <IsFloating>0</IsFloating> | |
| 3502 | + <IsTabbed>0</IsTabbed> | |
| 3503 | + <IsActivated>0</IsActivated> | |
| 3504 | + <MRUWidth>612</MRUWidth> | |
| 3505 | + <PinState>0</PinState> | |
| 3506 | + <RecentFrameAlignment>8192</RecentFrameAlignment> | |
| 3507 | + <RecentRowIndex>2</RecentRowIndex> | |
| 3508 | + <RectRecentDocked> | |
| 3509 | + <Len>16</Len> | |
| 3510 | + <Data>000000001C0000006F02000038000000</Data> | |
| 3511 | + </RectRecentDocked> | |
| 3512 | + <RectRecentFloat> | |
| 3513 | + <Len>16</Len> | |
| 3514 | + <Data>0A0000000A0000006E0000006E000000</Data> | |
| 3515 | + </RectRecentFloat> | |
| 3516 | + </Window> | |
| 3517 | + <Window> | |
| 3518 | + <RegID>824</RegID> | |
| 3519 | + <PaneID>824</PaneID> | |
| 3520 | + <IsVisible>0</IsVisible> | |
| 3521 | + <IsFloating>0</IsFloating> | |
| 3522 | + <IsTabbed>0</IsTabbed> | |
| 3523 | + <IsActivated>0</IsActivated> | |
| 3524 | + <MRUWidth>32767</MRUWidth> | |
| 3525 | + <PinState>0</PinState> | |
| 3526 | + <RecentFrameAlignment>32768</RecentFrameAlignment> | |
| 3527 | + <RecentRowIndex>0</RecentRowIndex> | |
| 3528 | + <RectRecentDocked> | |
| 3529 | + <Len>16</Len> | |
| 3530 | + <Data>C7030000E70100007D0700008F020000</Data> | |
| 3531 | + </RectRecentDocked> | |
| 3532 | + <RectRecentFloat> | |
| 3533 | + <Len>16</Len> | |
| 3534 | + <Data>8A000000A10000007A0100006C010000</Data> | |
| 3535 | + </RectRecentFloat> | |
| 3536 | + </Window> | |
| 3537 | + <DockMan> | |
| 3538 | + <Len>3311</Len> | |
| 3539 | + <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000080070000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000080070000F6000000F40000004F00000080070000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000CC010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F0000000E3010000000000004F000000F0000000CC0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000CC01000080070000D001000001000000010000100400000001000000B3FEFFFF9E00000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000BA050000BB050000BC050000CB090000B905000001800080000001000000C4030000E701000080070000BF020000C4030000D001000080070000A802000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203201000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFFC0030000D0010000C4030000A802000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000A802000080070000AC02000001000000010000100400000001000000AAFDFFFF36010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000C302000080070000FD03000000000000AC02000080070000E60300000000000040820056060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data> | |
| 3540 | + </DockMan> | |
| 3541 | + <ToolBar> | |
| 3542 | + <RegID>59392</RegID> | |
| 3543 | + <Name>File</Name> | |
| 3544 | + <Buttons> | |
| 3545 | + <Len>2344</Len> | |
| 3546 | + <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000D7061636B65745F6C656E677468960000000000000007000D73657373696F6E5F626567696E0D7061636B65745F6C656E6774680D526563656976655061636B657406726573756C740E596D6F64656D5F526563656976650C43616C63436865636B73756D0C75617274355F72785F66696E00000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000000180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000</Data> | |
| 3547 | + </Buttons> | |
| 3548 | + <OriginalItems> | |
| 3549 | + <Len>1423</Len> | |
| 3550 | + <Data>2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> | |
| 3551 | + </OriginalItems> | |
| 3552 | + <OrigResetItems> | |
| 3553 | + <Len>1423</Len> | |
| 3554 | + <Data>2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000</Data> | |
| 3555 | + </OrigResetItems> | |
| 3556 | + </ToolBar> | |
| 3557 | + <ToolBar> | |
| 3558 | + <RegID>59399</RegID> | |
| 3559 | + <Name>Build</Name> | |
| 3560 | + <Buttons> | |
| 3561 | + <Len>955</Len> | |
| 3562 | + <Data>00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data> | |
| 3563 | + </Buttons> | |
| 3564 | + <OriginalItems> | |
| 3565 | + <Len>583</Len> | |
| 3566 | + <Data>1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> | |
| 3567 | + </OriginalItems> | |
| 3568 | + <OrigResetItems> | |
| 3569 | + <Len>583</Len> | |
| 3570 | + <Data>1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000</Data> | |
| 3571 | + </OrigResetItems> | |
| 3572 | + </ToolBar> | |
| 3573 | + <ToolBar> | |
| 3574 | + <RegID>59400</RegID> | |
| 3575 | + <Name>Debug</Name> | |
| 3576 | + <Buttons> | |
| 3577 | + <Len>2362</Len> | |
| 3578 | + <Data>00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data> | |
| 3579 | + </Buttons> | |
| 3580 | + <OriginalItems> | |
| 3581 | + <Len>898</Len> | |
| 3582 | + <Data>1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000</Data> | |
| 3583 | + </OriginalItems> | |
| 3584 | + <OrigResetItems> | |
| 3585 | + <Len>898</Len> | |
| 3586 | + <Data>1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000</Data> | |
| 3587 | + </OrigResetItems> | |
| 3588 | + </ToolBar> | |
| 3589 | + <ControlBarsSummary> | |
| 3590 | + <Bars>0</Bars> | |
| 3591 | + <ScreenCX>1920</ScreenCX> | |
| 3592 | + <ScreenCY>1080</ScreenCY> | |
| 3593 | + </ControlBarsSummary> | |
| 3594 | + </ViewEx> | |
| 3595 | + </WinLayoutEx> | |
| 3596 | + | |
| 3597 | + <MDIGroups> | |
| 3598 | + <Orientation>1</Orientation> | |
| 3599 | + <ActiveMDIGroup>0</ActiveMDIGroup> | |
| 3600 | + <MDIGroup> | |
| 3601 | + <Size>100</Size> | |
| 3602 | + <ActiveTab>0</ActiveTab> | |
| 3603 | + <Doc> | |
| 3604 | + <Name>..\IAP\ymodem.c</Name> | |
| 3605 | + <ColumnNumber>0</ColumnNumber> | |
| 3606 | + <TopLine>1</TopLine> | |
| 3607 | + <CurrentLine>14</CurrentLine> | |
| 1957 | 3608 | <Folding>1</Folding> |
| 1958 | - <ContractedFolders></ContractedFolders> | |
| 3609 | + <ContractedFolders>76,95,102,123</ContractedFolders> | |
| 1959 | 3610 | <PaneID>0</PaneID> |
| 1960 | 3611 | </Doc> |
| 1961 | 3612 | </MDIGroup> | ... | ... |
USER/IAP.uvoptx
| ... | ... | @@ -120,7 +120,7 @@ |
| 120 | 120 | <SetRegEntry> |
| 121 | 121 | <Number>0</Number> |
| 122 | 122 | <Key>DLGUARM</Key> |
| 123 | - <Name>/</Name> | |
| 123 | + <Name></Name> | |
| 124 | 124 | </SetRegEntry> |
| 125 | 125 | <SetRegEntry> |
| 126 | 126 | <Number>0</Number> |
| ... | ... | @@ -150,95 +150,134 @@ |
| 150 | 150 | <SetRegEntry> |
| 151 | 151 | <Number>0</Number> |
| 152 | 152 | <Key>JL2CM3</Key> |
| 153 | - <Name>-U20080643 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name> | |
| 153 | + <Name>-U59400616 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name> | |
| 154 | 154 | </SetRegEntry> |
| 155 | 155 | </TargetDriverDllRegistry> |
| 156 | - <Breakpoint/> | |
| 156 | + <Breakpoint> | |
| 157 | + <Bp> | |
| 158 | + <Number>0</Number> | |
| 159 | + <Type>0</Type> | |
| 160 | + <LineNumber>296</LineNumber> | |
| 161 | + <EnabledFlag>1</EnabledFlag> | |
| 162 | + <Address>134225528</Address> | |
| 163 | + <ByteObject>0</ByteObject> | |
| 164 | + <HtxType>0</HtxType> | |
| 165 | + <ManyObjects>0</ManyObjects> | |
| 166 | + <SizeOfObject>0</SizeOfObject> | |
| 167 | + <BreakByAccess>0</BreakByAccess> | |
| 168 | + <BreakIfRCount>1</BreakIfRCount> | |
| 169 | + <Filename>..\IAP\ymodem.c</Filename> | |
| 170 | + <ExecCommand></ExecCommand> | |
| 171 | + <Expression>\\IAP\../IAP/ymodem.c\296</Expression> | |
| 172 | + </Bp> | |
| 173 | + <Bp> | |
| 174 | + <Number>1</Number> | |
| 175 | + <Type>0</Type> | |
| 176 | + <LineNumber>254</LineNumber> | |
| 177 | + <EnabledFlag>1</EnabledFlag> | |
| 178 | + <Address>0</Address> | |
| 179 | + <ByteObject>0</ByteObject> | |
| 180 | + <HtxType>0</HtxType> | |
| 181 | + <ManyObjects>0</ManyObjects> | |
| 182 | + <SizeOfObject>0</SizeOfObject> | |
| 183 | + <BreakByAccess>0</BreakByAccess> | |
| 184 | + <BreakIfRCount>0</BreakIfRCount> | |
| 185 | + <Filename>..\IAP\ymodem.c</Filename> | |
| 186 | + <ExecCommand></ExecCommand> | |
| 187 | + <Expression></Expression> | |
| 188 | + </Bp> | |
| 189 | + <Bp> | |
| 190 | + <Number>2</Number> | |
| 191 | + <Type>0</Type> | |
| 192 | + <LineNumber>308</LineNumber> | |
| 193 | + <EnabledFlag>1</EnabledFlag> | |
| 194 | + <Address>0</Address> | |
| 195 | + <ByteObject>0</ByteObject> | |
| 196 | + <HtxType>0</HtxType> | |
| 197 | + <ManyObjects>0</ManyObjects> | |
| 198 | + <SizeOfObject>0</SizeOfObject> | |
| 199 | + <BreakByAccess>0</BreakByAccess> | |
| 200 | + <BreakIfRCount>0</BreakIfRCount> | |
| 201 | + <Filename>..\IAP\ymodem.c</Filename> | |
| 202 | + <ExecCommand></ExecCommand> | |
| 203 | + <Expression></Expression> | |
| 204 | + </Bp> | |
| 205 | + </Breakpoint> | |
| 157 | 206 | <WatchWindow1> |
| 158 | 207 | <Ww> |
| 159 | 208 | <count>0</count> |
| 160 | 209 | <WinNumber>1</WinNumber> |
| 161 | - <ItemText>dev_param.ota_server_url</ItemText> | |
| 210 | + <ItemText>0x08010000</ItemText> | |
| 162 | 211 | </Ww> |
| 163 | 212 | <Ww> |
| 164 | 213 | <count>1</count> |
| 165 | 214 | <WinNumber>1</WinNumber> |
| 166 | - <ItemText>handle</ItemText> | |
| 215 | + <ItemText>packet_data</ItemText> | |
| 167 | 216 | </Ww> |
| 168 | 217 | <Ww> |
| 169 | 218 | <count>2</count> |
| 170 | 219 | <WinNumber>1</WinNumber> |
| 171 | - <ItemText>mTick</ItemText> | |
| 220 | + <ItemText>FileName</ItemText> | |
| 172 | 221 | </Ww> |
| 173 | 222 | <Ww> |
| 174 | 223 | <count>3</count> |
| 175 | 224 | <WinNumber>1</WinNumber> |
| 176 | - <ItemText>curTick</ItemText> | |
| 225 | + <ItemText>file_size</ItemText> | |
| 177 | 226 | </Ww> |
| 178 | 227 | <Ww> |
| 179 | 228 | <count>4</count> |
| 180 | 229 | <WinNumber>1</WinNumber> |
| 181 | - <ItemText>UART_RX_BUF[42321]</ItemText> | |
| 230 | + <ItemText>size,0x0A</ItemText> | |
| 182 | 231 | </Ww> |
| 183 | 232 | <Ww> |
| 184 | 233 | <count>5</count> |
| 185 | 234 | <WinNumber>1</WinNumber> |
| 186 | - <ItemText>UART_RX_BUF[42322]</ItemText> | |
| 235 | + <ItemText>(unsigned char *)buf_ptr[1024]</ItemText> | |
| 187 | 236 | </Ww> |
| 188 | 237 | <Ww> |
| 189 | 238 | <count>6</count> |
| 190 | 239 | <WinNumber>1</WinNumber> |
| 191 | - <ItemText>UART_RX_BUF[42323]</ItemText> | |
| 240 | + <ItemText>buf_1k</ItemText> | |
| 192 | 241 | </Ww> |
| 193 | 242 | <Ww> |
| 194 | 243 | <count>7</count> |
| 195 | 244 | <WinNumber>1</WinNumber> |
| 196 | - <ItemText>UART_RX_BUF[42324]</ItemText> | |
| 245 | + <ItemText>*(uint32_t*)WriteAddr</ItemText> | |
| 197 | 246 | </Ww> |
| 198 | 247 | <Ww> |
| 199 | 248 | <count>8</count> |
| 200 | 249 | <WinNumber>1</WinNumber> |
| 201 | - <ItemText>UART_RX_BUF[42325]</ItemText> | |
| 250 | + <ItemText>handle</ItemText> | |
| 202 | 251 | </Ww> |
| 203 | 252 | <Ww> |
| 204 | 253 | <count>9</count> |
| 205 | 254 | <WinNumber>1</WinNumber> |
| 206 | - <ItemText>UART_RX_BUF[42326]</ItemText> | |
| 255 | + <ItemText>flag</ItemText> | |
| 207 | 256 | </Ww> |
| 208 | 257 | <Ww> |
| 209 | 258 | <count>10</count> |
| 210 | 259 | <WinNumber>1</WinNumber> |
| 211 | - <ItemText>UART_RX_BUF[42327]</ItemText> | |
| 260 | + <ItemText>pBuffer</ItemText> | |
| 212 | 261 | </Ww> |
| 213 | 262 | <Ww> |
| 214 | 263 | <count>11</count> |
| 215 | 264 | <WinNumber>1</WinNumber> |
| 216 | - <ItemText>UART_RX_BUF[42328]</ItemText> | |
| 265 | + <ItemText>FileName</ItemText> | |
| 217 | 266 | </Ww> |
| 218 | 267 | <Ww> |
| 219 | 268 | <count>12</count> |
| 220 | 269 | <WinNumber>1</WinNumber> |
| 221 | - <ItemText>UART_RX_BUF[42329]</ItemText> | |
| 270 | + <ItemText>buf_rx5</ItemText> | |
| 222 | 271 | </Ww> |
| 223 | 272 | <Ww> |
| 224 | 273 | <count>13</count> |
| 225 | 274 | <WinNumber>1</WinNumber> |
| 226 | - <ItemText>UART_RX_BUF[42330]</ItemText> | |
| 275 | + <ItemText>buf_rx1</ItemText> | |
| 227 | 276 | </Ww> |
| 228 | 277 | <Ww> |
| 229 | 278 | <count>14</count> |
| 230 | 279 | <WinNumber>1</WinNumber> |
| 231 | - <ItemText>UART_RX_BUF[UART_RX_CNT-1]</ItemText> | |
| 232 | - </Ww> | |
| 233 | - <Ww> | |
| 234 | - <count>15</count> | |
| 235 | - <WinNumber>1</WinNumber> | |
| 236 | - <ItemText>UART_RX_BUF[UART_RX_CNT-2]</ItemText> | |
| 237 | - </Ww> | |
| 238 | - <Ww> | |
| 239 | - <count>16</count> | |
| 240 | - <WinNumber>1</WinNumber> | |
| 241 | - <ItemText>((uint16_t)0x0020)</ItemText> | |
| 280 | + <ItemText>buf_rx5[i]</ItemText> | |
| 242 | 281 | </Ww> |
| 243 | 282 | </WatchWindow1> |
| 244 | 283 | <MemoryWindow1> |
| ... | ... | @@ -253,7 +292,7 @@ |
| 253 | 292 | <Mm> |
| 254 | 293 | <WinNumber>2</WinNumber> |
| 255 | 294 | <SubType>0</SubType> |
| 256 | - <ItemText>0x08010000</ItemText> | |
| 295 | + <ItemText>0x08004000</ItemText> | |
| 257 | 296 | <AccSizeX>0</AccSizeX> |
| 258 | 297 | </Mm> |
| 259 | 298 | </MemoryWindow2> |
| ... | ... | @@ -347,6 +386,18 @@ |
| 347 | 386 | <RteFlg>0</RteFlg> |
| 348 | 387 | <bShared>0</bShared> |
| 349 | 388 | </File> |
| 389 | + <File> | |
| 390 | + <GroupNumber>2</GroupNumber> | |
| 391 | + <FileNumber>3</FileNumber> | |
| 392 | + <FileType>1</FileType> | |
| 393 | + <tvExp>0</tvExp> | |
| 394 | + <tvExpOptDlg>0</tvExpOptDlg> | |
| 395 | + <bDave2>0</bDave2> | |
| 396 | + <PathWithFileName>..\HARDWARE\LED\led.c</PathWithFileName> | |
| 397 | + <FilenameWithoutPath>led.c</FilenameWithoutPath> | |
| 398 | + <RteFlg>0</RteFlg> | |
| 399 | + <bShared>0</bShared> | |
| 400 | + </File> | |
| 350 | 401 | </Group> |
| 351 | 402 | |
| 352 | 403 | <Group> |
| ... | ... | @@ -357,7 +408,7 @@ |
| 357 | 408 | <RteFlg>0</RteFlg> |
| 358 | 409 | <File> |
| 359 | 410 | <GroupNumber>3</GroupNumber> |
| 360 | - <FileNumber>3</FileNumber> | |
| 411 | + <FileNumber>4</FileNumber> | |
| 361 | 412 | <FileType>1</FileType> |
| 362 | 413 | <tvExp>0</tvExp> |
| 363 | 414 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -369,7 +420,7 @@ |
| 369 | 420 | </File> |
| 370 | 421 | <File> |
| 371 | 422 | <GroupNumber>3</GroupNumber> |
| 372 | - <FileNumber>4</FileNumber> | |
| 423 | + <FileNumber>5</FileNumber> | |
| 373 | 424 | <FileType>1</FileType> |
| 374 | 425 | <tvExp>0</tvExp> |
| 375 | 426 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -381,18 +432,6 @@ |
| 381 | 432 | </File> |
| 382 | 433 | <File> |
| 383 | 434 | <GroupNumber>3</GroupNumber> |
| 384 | - <FileNumber>5</FileNumber> | |
| 385 | - <FileType>1</FileType> | |
| 386 | - <tvExp>0</tvExp> | |
| 387 | - <tvExpOptDlg>0</tvExpOptDlg> | |
| 388 | - <bDave2>0</bDave2> | |
| 389 | - <PathWithFileName>..\SYSTEM\CRC\crc.c</PathWithFileName> | |
| 390 | - <FilenameWithoutPath>crc.c</FilenameWithoutPath> | |
| 391 | - <RteFlg>0</RteFlg> | |
| 392 | - <bShared>0</bShared> | |
| 393 | - </File> | |
| 394 | - <File> | |
| 395 | - <GroupNumber>3</GroupNumber> | |
| 396 | 435 | <FileNumber>6</FileNumber> |
| 397 | 436 | <FileType>1</FileType> |
| 398 | 437 | <tvExp>0</tvExp> |
| ... | ... | @@ -410,18 +449,6 @@ |
| 410 | 449 | <tvExp>0</tvExp> |
| 411 | 450 | <tvExpOptDlg>0</tvExpOptDlg> |
| 412 | 451 | <bDave2>0</bDave2> |
| 413 | - <PathWithFileName>..\SYSTEM\usart\timer4.c</PathWithFileName> | |
| 414 | - <FilenameWithoutPath>timer4.c</FilenameWithoutPath> | |
| 415 | - <RteFlg>0</RteFlg> | |
| 416 | - <bShared>0</bShared> | |
| 417 | - </File> | |
| 418 | - <File> | |
| 419 | - <GroupNumber>3</GroupNumber> | |
| 420 | - <FileNumber>8</FileNumber> | |
| 421 | - <FileType>1</FileType> | |
| 422 | - <tvExp>0</tvExp> | |
| 423 | - <tvExpOptDlg>0</tvExpOptDlg> | |
| 424 | - <bDave2>0</bDave2> | |
| 425 | 452 | <PathWithFileName>..\SYSTEM\usart\usart1.c</PathWithFileName> |
| 426 | 453 | <FilenameWithoutPath>usart1.c</FilenameWithoutPath> |
| 427 | 454 | <RteFlg>0</RteFlg> |
| ... | ... | @@ -429,7 +456,7 @@ |
| 429 | 456 | </File> |
| 430 | 457 | <File> |
| 431 | 458 | <GroupNumber>3</GroupNumber> |
| 432 | - <FileNumber>9</FileNumber> | |
| 459 | + <FileNumber>8</FileNumber> | |
| 433 | 460 | <FileType>1</FileType> |
| 434 | 461 | <tvExp>0</tvExp> |
| 435 | 462 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -439,18 +466,6 @@ |
| 439 | 466 | <RteFlg>0</RteFlg> |
| 440 | 467 | <bShared>0</bShared> |
| 441 | 468 | </File> |
| 442 | - <File> | |
| 443 | - <GroupNumber>3</GroupNumber> | |
| 444 | - <FileNumber>10</FileNumber> | |
| 445 | - <FileType>1</FileType> | |
| 446 | - <tvExp>0</tvExp> | |
| 447 | - <tvExpOptDlg>0</tvExpOptDlg> | |
| 448 | - <bDave2>0</bDave2> | |
| 449 | - <PathWithFileName>..\SYSTEM\usart\timer3.c</PathWithFileName> | |
| 450 | - <FilenameWithoutPath>timer3.c</FilenameWithoutPath> | |
| 451 | - <RteFlg>0</RteFlg> | |
| 452 | - <bShared>0</bShared> | |
| 453 | - </File> | |
| 454 | 469 | </Group> |
| 455 | 470 | |
| 456 | 471 | <Group> |
| ... | ... | @@ -461,7 +476,7 @@ |
| 461 | 476 | <RteFlg>0</RteFlg> |
| 462 | 477 | <File> |
| 463 | 478 | <GroupNumber>4</GroupNumber> |
| 464 | - <FileNumber>11</FileNumber> | |
| 479 | + <FileNumber>9</FileNumber> | |
| 465 | 480 | <FileType>2</FileType> |
| 466 | 481 | <tvExp>0</tvExp> |
| 467 | 482 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -481,7 +496,7 @@ |
| 481 | 496 | <RteFlg>0</RteFlg> |
| 482 | 497 | <File> |
| 483 | 498 | <GroupNumber>5</GroupNumber> |
| 484 | - <FileNumber>12</FileNumber> | |
| 499 | + <FileNumber>10</FileNumber> | |
| 485 | 500 | <FileType>1</FileType> |
| 486 | 501 | <tvExp>0</tvExp> |
| 487 | 502 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -493,7 +508,7 @@ |
| 493 | 508 | </File> |
| 494 | 509 | <File> |
| 495 | 510 | <GroupNumber>5</GroupNumber> |
| 496 | - <FileNumber>13</FileNumber> | |
| 511 | + <FileNumber>11</FileNumber> | |
| 497 | 512 | <FileType>1</FileType> |
| 498 | 513 | <tvExp>0</tvExp> |
| 499 | 514 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -505,7 +520,7 @@ |
| 505 | 520 | </File> |
| 506 | 521 | <File> |
| 507 | 522 | <GroupNumber>5</GroupNumber> |
| 508 | - <FileNumber>14</FileNumber> | |
| 523 | + <FileNumber>12</FileNumber> | |
| 509 | 524 | <FileType>1</FileType> |
| 510 | 525 | <tvExp>0</tvExp> |
| 511 | 526 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -517,7 +532,7 @@ |
| 517 | 532 | </File> |
| 518 | 533 | <File> |
| 519 | 534 | <GroupNumber>5</GroupNumber> |
| 520 | - <FileNumber>15</FileNumber> | |
| 535 | + <FileNumber>13</FileNumber> | |
| 521 | 536 | <FileType>1</FileType> |
| 522 | 537 | <tvExp>0</tvExp> |
| 523 | 538 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -529,7 +544,7 @@ |
| 529 | 544 | </File> |
| 530 | 545 | <File> |
| 531 | 546 | <GroupNumber>5</GroupNumber> |
| 532 | - <FileNumber>16</FileNumber> | |
| 547 | + <FileNumber>14</FileNumber> | |
| 533 | 548 | <FileType>1</FileType> |
| 534 | 549 | <tvExp>0</tvExp> |
| 535 | 550 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -541,7 +556,7 @@ |
| 541 | 556 | </File> |
| 542 | 557 | <File> |
| 543 | 558 | <GroupNumber>5</GroupNumber> |
| 544 | - <FileNumber>17</FileNumber> | |
| 559 | + <FileNumber>15</FileNumber> | |
| 545 | 560 | <FileType>1</FileType> |
| 546 | 561 | <tvExp>0</tvExp> |
| 547 | 562 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -553,19 +568,7 @@ |
| 553 | 568 | </File> |
| 554 | 569 | <File> |
| 555 | 570 | <GroupNumber>5</GroupNumber> |
| 556 | - <FileNumber>18</FileNumber> | |
| 557 | - <FileType>1</FileType> | |
| 558 | - <tvExp>0</tvExp> | |
| 559 | - <tvExpOptDlg>0</tvExpOptDlg> | |
| 560 | - <bDave2>0</bDave2> | |
| 561 | - <PathWithFileName>..\FWLIB\src\stm32f4xx_tim.c</PathWithFileName> | |
| 562 | - <FilenameWithoutPath>stm32f4xx_tim.c</FilenameWithoutPath> | |
| 563 | - <RteFlg>0</RteFlg> | |
| 564 | - <bShared>0</bShared> | |
| 565 | - </File> | |
| 566 | - <File> | |
| 567 | - <GroupNumber>5</GroupNumber> | |
| 568 | - <FileNumber>19</FileNumber> | |
| 571 | + <FileNumber>16</FileNumber> | |
| 569 | 572 | <FileType>1</FileType> |
| 570 | 573 | <tvExp>0</tvExp> |
| 571 | 574 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -575,18 +578,6 @@ |
| 575 | 578 | <RteFlg>0</RteFlg> |
| 576 | 579 | <bShared>0</bShared> |
| 577 | 580 | </File> |
| 578 | - <File> | |
| 579 | - <GroupNumber>5</GroupNumber> | |
| 580 | - <FileNumber>20</FileNumber> | |
| 581 | - <FileType>1</FileType> | |
| 582 | - <tvExp>0</tvExp> | |
| 583 | - <tvExpOptDlg>0</tvExpOptDlg> | |
| 584 | - <bDave2>0</bDave2> | |
| 585 | - <PathWithFileName>..\FWLIB\src\stm32f4xx_fsmc.c</PathWithFileName> | |
| 586 | - <FilenameWithoutPath>stm32f4xx_fsmc.c</FilenameWithoutPath> | |
| 587 | - <RteFlg>0</RteFlg> | |
| 588 | - <bShared>0</bShared> | |
| 589 | - </File> | |
| 590 | 581 | </Group> |
| 591 | 582 | |
| 592 | 583 | <Group> |
| ... | ... | @@ -597,7 +588,7 @@ |
| 597 | 588 | <RteFlg>0</RteFlg> |
| 598 | 589 | <File> |
| 599 | 590 | <GroupNumber>6</GroupNumber> |
| 600 | - <FileNumber>21</FileNumber> | |
| 591 | + <FileNumber>17</FileNumber> | |
| 601 | 592 | <FileType>1</FileType> |
| 602 | 593 | <tvExp>0</tvExp> |
| 603 | 594 | <tvExpOptDlg>0</tvExpOptDlg> |
| ... | ... | @@ -607,26 +598,26 @@ |
| 607 | 598 | <RteFlg>0</RteFlg> |
| 608 | 599 | <bShared>0</bShared> |
| 609 | 600 | </File> |
| 610 | - </Group> | |
| 611 | - | |
| 612 | - <Group> | |
| 613 | - <GroupName>README</GroupName> | |
| 614 | - <tvExp>0</tvExp> | |
| 615 | - <tvExpOptDlg>0</tvExpOptDlg> | |
| 616 | - <cbSel>0</cbSel> | |
| 617 | - <RteFlg>0</RteFlg> | |
| 618 | 601 | <File> |
| 619 | - <GroupNumber>7</GroupNumber> | |
| 620 | - <FileNumber>22</FileNumber> | |
| 621 | - <FileType>5</FileType> | |
| 602 | + <GroupNumber>6</GroupNumber> | |
| 603 | + <FileNumber>18</FileNumber> | |
| 604 | + <FileType>1</FileType> | |
| 622 | 605 | <tvExp>0</tvExp> |
| 623 | 606 | <tvExpOptDlg>0</tvExpOptDlg> |
| 624 | 607 | <bDave2>0</bDave2> |
| 625 | - <PathWithFileName>..\readme.txt</PathWithFileName> | |
| 626 | - <FilenameWithoutPath>readme.txt</FilenameWithoutPath> | |
| 608 | + <PathWithFileName>..\IAP\ymodem.c</PathWithFileName> | |
| 609 | + <FilenameWithoutPath>ymodem.c</FilenameWithoutPath> | |
| 627 | 610 | <RteFlg>0</RteFlg> |
| 628 | 611 | <bShared>0</bShared> |
| 629 | 612 | </File> |
| 630 | 613 | </Group> |
| 631 | 614 | |
| 615 | + <Group> | |
| 616 | + <GroupName>README</GroupName> | |
| 617 | + <tvExp>1</tvExp> | |
| 618 | + <tvExpOptDlg>0</tvExpOptDlg> | |
| 619 | + <cbSel>0</cbSel> | |
| 620 | + <RteFlg>0</RteFlg> | |
| 621 | + </Group> | |
| 622 | + | |
| 632 | 623 | </ProjectOpt> | ... | ... |
USER/IAP.uvprojx
| ... | ... | @@ -336,7 +336,7 @@ |
| 336 | 336 | <v6Rtti>0</v6Rtti> |
| 337 | 337 | <VariousControls> |
| 338 | 338 | <MiscControls></MiscControls> |
| 339 | - <Define>STM32F40_41xxx,USE_STDPERIPH_DRIVER,USE_HSE_BYPASS</Define> | |
| 339 | + <Define>STM32F40_41xxx,USE_STDPERIPH_DRIVER,USE_HSE_BYPASS,USE_FULL_ASSERT</Define> | |
| 340 | 340 | <Undefine></Undefine> |
| 341 | 341 | <IncludePath>..\CORE;..\SYSTEM\delay;..\SYSTEM\sys;..\SYSTEM\usart;..\HARDWARE\LED;..\FWLIB\inc;..\IAP;..\HARDWARE\STMFLASH;..\HARDWARE\MALLOC;..\HARDWARE\FLASH;..\HARDWARE\HTTP;..\HARDWARE\TIMER;..\USER;..\SYSTEM\TIMER;..\SYSTEM\CRC;..\SYSTEM\fsmc</IncludePath> |
| 342 | 342 | </VariousControls> |
| ... | ... | @@ -397,6 +397,11 @@ |
| 397 | 397 | <FileType>1</FileType> |
| 398 | 398 | <FilePath>..\HARDWARE\FLASH\flash.c</FilePath> |
| 399 | 399 | </File> |
| 400 | + <File> | |
| 401 | + <FileName>led.c</FileName> | |
| 402 | + <FileType>1</FileType> | |
| 403 | + <FilePath>..\HARDWARE\LED\led.c</FilePath> | |
| 404 | + </File> | |
| 400 | 405 | </Files> |
| 401 | 406 | </Group> |
| 402 | 407 | <Group> |
| ... | ... | @@ -413,21 +418,11 @@ |
| 413 | 418 | <FilePath>..\SYSTEM\delay\delay.c</FilePath> |
| 414 | 419 | </File> |
| 415 | 420 | <File> |
| 416 | - <FileName>crc.c</FileName> | |
| 417 | - <FileType>1</FileType> | |
| 418 | - <FilePath>..\SYSTEM\CRC\crc.c</FilePath> | |
| 419 | - </File> | |
| 420 | - <File> | |
| 421 | 421 | <FileName>uart5.c</FileName> |
| 422 | 422 | <FileType>1</FileType> |
| 423 | 423 | <FilePath>..\SYSTEM\usart\uart5.c</FilePath> |
| 424 | 424 | </File> |
| 425 | 425 | <File> |
| 426 | - <FileName>timer4.c</FileName> | |
| 427 | - <FileType>1</FileType> | |
| 428 | - <FilePath>..\SYSTEM\usart\timer4.c</FilePath> | |
| 429 | - </File> | |
| 430 | - <File> | |
| 431 | 426 | <FileName>usart1.c</FileName> |
| 432 | 427 | <FileType>1</FileType> |
| 433 | 428 | <FilePath>..\SYSTEM\usart\usart1.c</FilePath> |
| ... | ... | @@ -437,11 +432,6 @@ |
| 437 | 432 | <FileType>1</FileType> |
| 438 | 433 | <FilePath>..\SYSTEM\usart\debug.c</FilePath> |
| 439 | 434 | </File> |
| 440 | - <File> | |
| 441 | - <FileName>timer3.c</FileName> | |
| 442 | - <FileType>1</FileType> | |
| 443 | - <FilePath>..\SYSTEM\usart\timer3.c</FilePath> | |
| 444 | - </File> | |
| 445 | 435 | </Files> |
| 446 | 436 | </Group> |
| 447 | 437 | <Group> |
| ... | ... | @@ -488,20 +478,10 @@ |
| 488 | 478 | <FilePath>..\FWLIB\src\stm32f4xx_flash.c</FilePath> |
| 489 | 479 | </File> |
| 490 | 480 | <File> |
| 491 | - <FileName>stm32f4xx_tim.c</FileName> | |
| 492 | - <FileType>1</FileType> | |
| 493 | - <FilePath>..\FWLIB\src\stm32f4xx_tim.c</FilePath> | |
| 494 | - </File> | |
| 495 | - <File> | |
| 496 | 481 | <FileName>system_stm32f4xx.c</FileName> |
| 497 | 482 | <FileType>1</FileType> |
| 498 | 483 | <FilePath>.\system_stm32f4xx.c</FilePath> |
| 499 | 484 | </File> |
| 500 | - <File> | |
| 501 | - <FileName>stm32f4xx_fsmc.c</FileName> | |
| 502 | - <FileType>1</FileType> | |
| 503 | - <FilePath>..\FWLIB\src\stm32f4xx_fsmc.c</FilePath> | |
| 504 | - </File> | |
| 505 | 485 | </Files> |
| 506 | 486 | </Group> |
| 507 | 487 | <Group> |
| ... | ... | @@ -512,17 +492,15 @@ |
| 512 | 492 | <FileType>1</FileType> |
| 513 | 493 | <FilePath>..\IAP\iap.c</FilePath> |
| 514 | 494 | </File> |
| 495 | + <File> | |
| 496 | + <FileName>ymodem.c</FileName> | |
| 497 | + <FileType>1</FileType> | |
| 498 | + <FilePath>..\IAP\ymodem.c</FilePath> | |
| 499 | + </File> | |
| 515 | 500 | </Files> |
| 516 | 501 | </Group> |
| 517 | 502 | <Group> |
| 518 | 503 | <GroupName>README</GroupName> |
| 519 | - <Files> | |
| 520 | - <File> | |
| 521 | - <FileName>readme.txt</FileName> | |
| 522 | - <FileType>5</FileType> | |
| 523 | - <FilePath>..\readme.txt</FilePath> | |
| 524 | - </File> | |
| 525 | - </Files> | |
| 526 | 504 | </Group> |
| 527 | 505 | </Groups> |
| 528 | 506 | </Target> | ... | ... |
USER/main.c
| ... | ... | @@ -12,86 +12,51 @@ |
| 12 | 12 | #include "usart1.h" |
| 13 | 13 | #include "uart5.h" |
| 14 | 14 | #include "iap.h" |
| 15 | +#include "led.h" | |
| 15 | 16 | #include "flash.h" |
| 16 | - | |
| 17 | +#include "ymodem.h" | |
| 17 | 18 | |
| 18 | 19 | int main(void) |
| 19 | 20 | { |
| 20 | 21 | uint32_t handle; |
| 22 | + uint8_t ret; | |
| 21 | 23 | NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4 |
| 22 | - | |
| 23 | 24 | delay_init(); |
| 24 | - uart1_init(); | |
| 25 | + usart1_init(); | |
| 25 | 26 | uart5_init(); |
| 27 | + LED_Init(); | |
| 26 | 28 | |
| 27 | - Detection_Update(); //本地升级 | |
| 28 | - | |
| 29 | - handle = STMFLASH_ReadWord(FLAG_BASE_ADDR); | |
| 29 | + display_bootloader_extry_information(); | |
| 30 | 30 | |
| 31 | - //检测是否OTA | |
| 32 | - //检测是否本地 | |
| 33 | - //执行 | |
| 31 | + handle = STMFLASH_ReadWord(FLAG_BASE_ADDR); | |
| 34 | 32 | switch(handle) //选择加载那一部分的固件 |
| 35 | 33 | { |
| 36 | - case BOOTLOADER_RUN: //运行段 | |
| 37 | - printf("\r\n**********Runing Firmware **********\r\n"); | |
| 38 | - | |
| 39 | - delay_ms(20); | |
| 40 | - Run_Flash_App(APP_RUN_ADDR); | |
| 41 | - break; | |
| 42 | - | |
| 43 | - case BOOTLOADER_LOAD: //升级段 | |
| 44 | - printf("\r\n**********Loading Firmware **********\r\n"); | |
| 45 | - | |
| 46 | - #if 0 | |
| 47 | - handle = APP_RUN_ADDR; | |
| 48 | - STMFLASH_Write(APP_BACK_ADDR,(uint32_t *)handle,128*1024); | |
| 49 | - delay_ms(10); | |
| 50 | - #endif | |
| 51 | - | |
| 52 | - handle = APP_LOAD_ADDR; | |
| 53 | - STMFLASH_Write(APP_RUN_ADDR,(uint32_t *)handle,192*1024); | |
| 54 | - delay_ms(10); | |
| 55 | - | |
| 56 | - handle = BOOTLOADER_RUN; | |
| 57 | - STMFLASH_Write(FLAG_BASE_ADDR,(uint32_t *)&handle,4); | |
| 58 | - | |
| 59 | - Run_Flash_App(APP_RUN_ADDR); | |
| 60 | - break; | |
| 61 | - | |
| 62 | - #if 0 | |
| 63 | - case BOOTLOADER_BACK: //回滚段 | |
| 64 | - printf("\r\n**********Backup Firmware **********\r\n"); | |
| 65 | - | |
| 66 | - handle = APP_BACK_ADDR; | |
| 67 | - STMFLASH_Write(APP_RUN_ADDR,(uint32_t *)handle,128*1024); | |
| 68 | - delay_ms(10); | |
| 69 | - | |
| 70 | - handle = BOOTLOADER_RUN; | |
| 71 | - STMFLASH_Write(FLAG_BASE_ADDR,(uint32_t *)&handle,4); | |
| 72 | - delay_ms(10); | |
| 73 | - | |
| 74 | - Run_Flash_App(APP_RUN_ADDR); | |
| 75 | - break; | |
| 76 | - #endif | |
| 77 | - | |
| 78 | - case BOOTLOADER_DEFAULT: //利于出厂(默认加载这一段) | |
| 79 | - printf("\r\n**********Default Firmware **********\r\n"); | |
| 80 | - | |
| 81 | - handle = BOOTLOADER_RUN; | |
| 82 | - STMFLASH_Write(FLAG_BASE_ADDR,(uint32_t *)&handle,4); | |
| 83 | - | |
| 84 | - Run_Flash_App(APP_RUN_ADDR); | |
| 85 | - break; | |
| 86 | - | |
| 34 | + case BOOTLOADER_LOAD: //升级段 | |
| 35 | + load_process(); | |
| 36 | + break; | |
| 37 | + case BOOTLOADER_RUN: //运行段 | |
| 38 | + ret= uart_boot_detect(); | |
| 39 | + if(LOCAL_BOOT_NONE == ret) | |
| 40 | + { | |
| 41 | + app_run(); | |
| 42 | + } | |
| 43 | + else | |
| 44 | + { | |
| 45 | + printf("User instuction deteced!\r\n"); | |
| 46 | + uart_boot(); | |
| 47 | + } | |
| 48 | + break; | |
| 49 | + case BOOTLOADER_DEFAULT: | |
| 87 | 50 | default : |
| 88 | - printf("\r\n**********Don^t Having Firmware **********\r\n"); | |
| 51 | + printf("No valid firmware detected!\r\n"); | |
| 52 | + uart_boot(); | |
| 89 | 53 | break; |
| 90 | 54 | } |
| 55 | + | |
| 91 | 56 | |
| 92 | - while(1) //预留通过网口升级的接口(CH395Q) | |
| 57 | + while(1) | |
| 93 | 58 | { |
| 94 | - printf("\r\n********IDLE********\r\n"); | |
| 59 | + printf("unreachable!\r\n"); | |
| 95 | 60 | delay_ms(5000); |
| 96 | 61 | } |
| 97 | 62 | } | ... | ... |