一、创建工作项目
第一步,建立工作目录:
这一步完全按照个人的使用习惯,比如我会在文件夹中建立五个子目录,分别是usr,用来放置上层的程序文件;cm3,用来存放内核与底层设备文件;driver,用来放置模块驱动文件;obj,用来放置编译的中间文件和生成的二进制文件,如*.axf文件;lst,用来放置编译的列表文件。
cm3 driver 项目文件夹 usr lst
cm3中的文件有:core_cm3.c, core_cm3.h, LPC17xx.h, system_LPC17xx.c, system_LPC17xx.h, type.h和startup_LPC17xx.s。其中startup_LPC17xx.s可由keil自动生成,其它的文件可从NXP的官方网站中下载。lst和obj的文件夹中的文件由keil自动生成。 第二步,建立项目:
obj
将项目文件放到项目文件夹中就可以了,接着会让你选择CPU的型号:
接下来会出现
是否生成启动文件,选是,会生成startup_LPC17xx.s,我将其放入了cm3文件夹中。
接下来就是建立项目虚拟文件夹,并将内核文件等已有的文件加入项目中
最后我们的目录是:
然后我们建立主函数入口程序:
建立一个最简单的主函数,然后另存到真实目录usr中,然后加载到虚拟目录usr中
完成后为:
第三步,设定各项参数:
其中在Output和Listing中,分别把目录设为Obj和lst,具体可见教程中,我们主要说C/C++、Debug和Utilities的选项。
其中,Define中可以填写需要预定义的宏,Optimization中的Level 0(-O0)表示优化参数,Level后面的数字越大,表示优化程度越高,但是优化程度的提高可能导致Debug的失败,
因此我们一般选择0,等到程序全部测试成功后再用高优化参数进行编译。
Simulator表示使用虚拟仿真技术,也就是Keil自带的ARM虚拟机来进行仿真,一般我们使用时会选中下面的Limit Speed to Real-Time,使虚拟机的时钟和实际的时间保持一致。而选中右面的部分左上角的单选按钮后,使用仿真器在实际的目标板上进行调试,仿真器有很多种,注意要选对你所用的仿真器,不然没有办法进行调试。我们选择的是CooCox Debuger,这是我们根据开源仿真器ColinkEx自制的仿真器。在Run to main前面的多选框中打勾,这是使每次目标板重启是程序指针从main中开始。
如果我们使用硬件仿真调试,接下来我们的工作是配置仿真器,按Settings会出现设置对话框,不同的仿真器的界面是不同的。在Debug选项中,确定仿真器的名称、连接方式和下载速率。然后在Flash Download中添加嵌入式芯片Flash的种类。