一、基于寄存器
- 建立框架:建立一个文件夹(命名为test)用于存放工程文件,在test里再建立一个文件夹user用于存放keil5程序,打开keil5点击Project->New uVision Project,命名后存放在user文件夹中
- 启动代码:启动代码是一段和硬件相关的汇编代码,主要作用如下:
①堆栈SP初始化 ②程序计数器PC初始化 ③设置向量表异常事件的入口地址 ④调用main函数 ST公司提供3个启动文件分别用于不同容量的STM32芯片,这三个文件是: ①startup_stm32f10x_ld.s ②startup_stm32f10x_md.s ③startup_stm32f10x_hd.s 小容量(flash小于等于32k)使用ld.s;中等容量产品(64k<flash<128k)用md.s;大容量产品(256k<flash)用hd.s - 添加启动文件:启动文件和工程文件等不可缺少的文件都放在USER文件夹下
- 调整工程目录(操作文件夹):
①删除软件自动生成的文件夹Listings和Objects ②在test文件夹下新建OBJ文件夹用来存放编译过程中产生的中间文件(包括.hex文件也放在这个文件夹里) ③将上述删除的两个文件夹里的东西挪到OBJ文件夹里去 ④将基于寄存器的系统文件SYSTEM(由ALIENTEK提供)拷贝到test文件夹下。 注意:不要把库函数代码的系统文件拷贝到寄存器代码里面用,反之亦然 - 管理工程目录(在软件中操作):
①在target目录上右键->manage project items ②点击中间的groups组右边的方框,新建两个文件夹USER和SYSTEM,再点击SYSTEM,点击add files,SYSTEM只需要添加sys.c、usart.c、delay.c - 设置OUTPUT文件路径
- 设置listings文件
- 加入头文件包含路径
①宏定义的选择: 小容量选择STM32F10X_LD, 中等容量选择STM32F10X_MD, 大容量选择STM32F10X_HD ②编译器优化选项:有O0~O3四种选择,值越大,优化效果越强,但仿真调试效果越差 ③冗余函数的优化:one elf section per function可以在最后生成的二进制文件中将冗余函数排除掉,减少整个程序的代码量
二、基于库文件的创建
- 创建文件夹:创建一个新的文件夹test,并在此文件夹中创建如下四个文件夹:
①CORE:存放核心文件和启动文件 ②OBJ:存放编译过程文件和hex文件 ③STM32F10x_FWLib:存放官方提供的库函数源码文件 ④USER:存放工程文件、主函数等 - 复制固件库相关文件
- 工程添加文件
- 设置选项:如同基于寄存器的最后一步
|