参考博客及文档有:
1,http://www.cnblogs.com/ele-eye/archive/2011/11/28/2266229.html
2,http://www.cnblogs.com/king-77024128/articles/2512997.html(CMSIS介绍)
3, http://wenku.baidu.com/link?url=2blE__GxI1lmJglihBi5xJQPolza-NMxcZqGThxwysiY80ZOe6hLl5k6mowbTN2j30WsPftFZsBe1pRt8WlCDIT7Ce5EIReo4uGCEyegh7S(IAR 新建 STM32工程)
4,http://blog.sina.com.cn/s/blog_4c8287230100f0jw.html(IAR 新建 STM32工程)
5,http://blog.sina.com.cn/s/blog_4c8287230100eznh.html(IAR使用说明)
6,http://blog.sina.com.cn/s/blog_4c8287230100f2ah.html(IAR使用说明 第一个IAR项目)
7,http://blog.chinaunix.net/uid-26435987-id-3073074.html(启动代码和bootloader的关系)
建立工程之前首先应知道IAR EW6.30版本较IAR EW6.20之前的版本有一个较大的改变。即IAR EW6.30已经植入了Cortex-m3的内核相关定义,所以在建立工程时就不需要添加ST库中core_cm3.c 和 core_cm3.h 这两个文件了。不过需在配置IAR EW选项是需勾选"Options - General Options - Library Configuration"界面下的Use CMSIS。如图:
建立工程前先介绍下相关文件夹及源文件:
CMSIS:ARM定制的一个Cortex_M系列微控制器软件接口标准(Cortex MicroController Software Interface Standard的缩写)。主要是为了提供通用api接口来访问内核和一些片上外设。提高代码的可移植性。CMSIS有三个层:核内外设访问层Core Peripheral Access Layer(CPAL),中间件(是一种独立的系统软件或服务程序如FatFS)访问层Middleware Access Layer(MWAL),设备访问层(Device Peripheral Access Layer)。CPAL用于访问内核的寄存器和组件,如NVIC,调试系统等,该层是由ARM实现的。MWAL用于对中间件的访问,现在该层还未实现。DPAL用于定义一些硬件寄存器的地址和一些外设访问函数,由芯片制造商实现。CPAL的实现就是core_cm3.c,core_cm3.h文件。DPAL层实现的就是system_stm32f10x.c的文件(似乎还要加上外设的函数库)。
stm32f10x_flash.icf:编译器链接库文件,修改两个参数即可改变代码存放的地址空间。
startup_stm32f10x_cl.s:stm32f105vc在IAR编译器环境下专业的启动文件。启动文件用英文单词来描述为“Bootloader”。无论性能高下,结构简繁,价格贵贱,每一种微控制器(处理器)都必须有启动文件,启动文件的作用便是负责执行微控制器从“复位”到“开始执行