以前用IAR,正点原子提供的是MDK开发环境,我重新建立了一个IAR5.30工程,使用MDK库函数版本。拷贝MDK库函数版本工程到一个工程目录下就好了,见下图。几个icf文件要从其他地方考过来,不难的。startup_stm32f10x_hd.s文件要使用IAR格式的,在IAR安装目录中有MDK,GCC,IAR三种格式的,需要使用IAR格式。IAR开发环境设置。
这里要选择FULL ,不然会出现FILE not found 的错误。
上面的红圈很重要,第一个是头文件目录,必须要设置,工程下所有用到的.h文件
第二个是宏定义,USE_STDPERIPH_DRIVER和STM32F10X_HD必须要添加,VECT_TAB_SRAM是正点原子工程中设置中断向量表到SRAM和FLASH中的宏定义,我使用SRAM调试,就需要定义这个宏了。
这里也很重要,这是设置SRAM和FLASH文件,我使用sram调试就利用SRAM那个icf文件了。
这是main.c文件,Systeminit();是我加上去的,如果不加好像也没有啥影响,不过在流水灯程序中如果不加,LED闪烁时间变慢,没有在MDK中的快。所以,以后的工程,我都把这句加上了。
这是下载code到SRAM中的map文件,可以看到是下载到SRAM中,这样就可以调试了,
上面说的是利用正点原子的库函数版本的程序,移植到IAR中的步骤,
但是,我更喜欢使用寄存器版本的程序,因为条理和思路清晰,容易理解。下面步骤是将寄存器程序移植到IAR中的,步骤和上面一样,但是要修改system.c文件,见下图,其中需要几句汇编,在IAR中是利用asm(“XXXX”);来声明嵌入汇编的。
下面是需要修改usart.c的文件,注释掉前面的#if 1,但是sys_exit()和重定义的fputc()需要保留。
然后寄存器版本的程序就可以移植到IAR5.30中了。
下图是在SRAM中调试寄存器版本的LCD测试程序界面。
阅读(20316) | 评论(0) | 转发(1) |