把Keil(MDK)4升级到Keil(MDK)5,走了一些弯路,终于成功了,记录如下,也适用于新建工程。
1、下载、安装、注册Keil(MDK)5,具体方法百度上很多。
2、下载与硬件对应的软件包http://www.keil.com/dd2/Pack/到任意文件夹,双击安装。
3、打开软件,新建工程
自定义工程名称
选择型号
选择运行库,用自带库时在这个界面取消,自己复制标准库。
CMSIS/CORE 和 Device/Startup 必选,其它根据需要选择。有些选项是黄的,表示缺少依赖项,按红框内的提示勾选Framework后正常。
点击ok后按下图修改名称
4、启动Windows资源管理器,在工程文件夹中新建Users文件夹,把原来v4版中自己编写的文件复制到这个文件夹中(注意:不要特制原来的系统文件)。
5、回到Keil5,点击图示图标
点击Add Files... 添加源文件
选择刚才复制的cpp文件,不含.h文件,点击Add、Close,再点OK,回到主界面。
6、配置
下面的Xtal参数影响软件仿真中模拟示波器的扫描速度
Output标签中勾选Create Hex File项,生成二进制文件,再把Name of Executable中的名称加上后缀.hex就能直接下载二进制文件,但是不能调试,一般不用。
Debug标签中根据实际情况设置下面几项,点击Settings
勾选Reset and Run,下载程序后自动运行,否则下载程序后要按Reset键或断电后才能运行。点击确定、OK回到主界面
7、编译
出现错误
SYSTICK_MAXCOUNT 和 SYSTICK_ENABLE 在5版中没有了,查看系统源文件core_cm3.h,发现有两个类似的参数:SysTick_LOAD_RELOAD_Msk = SYSTICK_MAXCOUNT - 1,SysTick_CTRL_ENABLE_Msk = (1<<SYSTICK_ENABLE) 替换后编译正常,有一个警告错误,声明的变量没有使用,先不处理。
8、下载
下载正常,但是LED灯不闪,程序未运行。
查看《STM32开发过程的常见问题》修改startup_stm32f10x_hd.s文件中的栈空间,把原来的0x00000400改成0x00000800,也就是1k改成2k,再下载,一切正常。升级工作完成,若是新建工程只须去掉复制旧版本文件的步骤就行。