2014/1/7
问题：SystemCoreClock值不正确，一直为22.1184MHz
原因：SystemInit()对SystemCoreClock的正确赋值被之后调用的__main库函数对全局变量的初始化给覆盖掉了。。
将system_SWM1200.c文件中
uint32_t SystemCoreClock  = __HSI;   		//System Clock Frequency (Core Clock)
uint32_t CyclesPerUs      = (__HSI / 1000000); 	//Cycles per micro second
改为：
__attribute__((zero_init)) uint32_t SystemCoreClock;   	//System Clock Frequency (Core Clock)
__attribute__((zero_init)) uint32_t CyclesPerUs; 		//Cycles per micro second

2014/4/9
问题：当使用多路PWM时，调用PWM_Start的顺序如果不是2、1、0则会导致有几路PWM无法启动
原因：原程序中((~3) << 2)的写法会导致右移填充的0覆盖掉其他路PWM的开启设置
改为：(~(3 << 2))，即先移位后按位取反

2014/5/14
问题：uint32_t EXTI_GetLevel(EXTI_T * EXTIx,uint32_t n) {
return (EXTIx->u32INTLEVEL | (0x01 << n)) ? 1 : 0;      }
显然逻辑错误，因为肯定一直返回1而无法返回0，应该将逻辑或|改为逻辑与&

相同问题的还有uint32_t EXTI_GetMode(EXTI_T * EXTIx,uint32_t n)

2014/5/22
GPIO_Init函数case ((uint32_t)GPIOE)分支操作的不是GPIOE而是GPIOD，已改正

2014/11/18
调用void GPIO_SetBits(GPIO_T * GPIOx,uint32_t n,uint32_t w)同时设置的引脚个数超过12个时无法工作
解决方法：
将   bits = 0xFFF>>(12-w);
改为 bits = 0xFFFF>>(16-w);

GPIO_ClrBits、GPIO_InvBits、GPIO_GetBits也有同样的问题，用同样的方法解决

2014/11/20
添加IAP读写Flash库文件SWM100_flash.c和SWM100_flash.h
添加IAP读写Flash测试项目FLASH\AsEEPROM
添加BOD掉电中断测试项目BOD\SimplBOD
添加BOD掉电中断中将参数存储到Flash中的测试项目BOD\BOD_Flash

2014/12/5
更正PWM中断相关寄存器的定义，并添加演示PWM中断功能的项目例程PWM\PWM_INT

2015/1/19
1、将所有项目的项目设置中IRAM后面的NoInit勾选去掉
2、将所有项目中对SystemInit()的调用从startup文件移到main()函数的顶部
3、将system_SWM100.c文件中
__attribute__((zero_init)) uint32_t SystemCoreClock;   	//System Clock Frequency (Core Clock)
__attribute__((zero_init)) uint32_t CyclesPerUs; 	//Cycles per micro second
改回：
uint32_t SystemCoreClock  = __HSI;   		//System Clock Frequency (Core Clock)
uint32_t CyclesPerUs      = (__HSI / 1000000); 	//Cycles per micro second

这个改法之前之所以起作用是因为之前勾选了NoInit；现在改回去之所以还能保证执行正确是因为在main()中调用SystemInit()

2016/4/1
删除SSI的SD卡例程，换成SimplSPI

2016/5/10
PWM_Stop()中
PWMG->u32CHEN &= (~(chA|(chB<<1))) << 2;
改正为：
PWMG->u32CHEN &= ~((chA|(chB<<1)) << 2);
即先左移后取反

2016/5/24
修改了Flash读写的函数和例程

2016/7/29
ADC_Init()函数中添加一条语句：
*((volatile unsigned int *)0x40017050) |= (1 << 20);	//关闭ADC硬件校准功能

2017/9/20
将设定系统时钟的钟宏定义从 system_SWM100.h 搬到 system_SWM100.c
