嵌入式系统设计(STM32)第1讲分析.ppt
文本预览下载声明
下面要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。 我们只用到arm目录下面的startup_stm32f10x_md.s文件,这个文件是针对中等容量芯片的启动文件。 其他两个主要的为startup_stm32f10x_ld.s为小容量,startup_stm32f10x_hs.c为大容量芯片的启动文件。这里copy进来是方便其他开发者使用小容量或者大容量芯片的用户。 将目录下面的src、inc文件夹copy到STM32F10x_FWLib文件夹下面。src存放的是固件库的.c文件,inc存放的是对应的.h文件,每个外设对应一个.c文件和一个.h头文件。 下面将这些文件加入我们的工程中去。右键点击Target1,选择Manage Components Project Targets一栏,将Target名字修改为Template,然后在Groups一栏删掉一个,建立三个Groups:USER, CORE, FWLIB. 点击OK. 下面我们往Group里面添加我们需要的文件。右键点击点击Tempate,选择选择Manage Components. 然后选择需要添加文件的Group,这里第一步我们选择FWLIB,然后点击右边的Add Files,定位到我们刚才建立的目录STM32F10x_FWLib/src下面,将里面所有的文件选中(Ctrl+A),然后点击Add,然后Close.可以看到Files列表下面包含我们添加的文件 下面我们点击编译按钮 编译工程, 可以看到很多报错,因为找不到库文件。 下面要告诉MDK,在哪些路径之下搜索相应的文件。 回到工程主菜单,点击魔术棒, 出来一个菜单,然后点击 c/c++选项.然后点击Include Paths右边的按钮。弹出一个添加path的对话框,然后我们将图上面的3个目录添加进去。记住,keil只会在一级目录查找,所以如果你的目录下面还有子目录,记得path一定要定位到最后一级子目录。然后点击OK. 重新定位到c/c++界面,然后copy “STM32F10X_MD,USE_STDPERIPH_DRIVER”到 Define里面。 在编译之前,我们记得打开工程USUR下面的main.c,复制下面代码到main.c覆盖已有代码,然后进行编译。(记得在代码的最后面加上一个回车,否则会有警告) #include stm32f10x.h GPIO_InitTypeDef GPIO_InitStructure; int main(void) { SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_2; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOD, GPIO_InitStructure); while (1) { /* Set PD0 and PD2 */ GPIOD-BSRR = 0 /* Reset PD0 and PD2 */ GPIOD-BRR = 0 } } 这次编译可以看出,已经成功了。这样一个工程模版建立完毕。 下面还需要配置,让编译之后能够生成hex文件。同样点击魔术棒,进入配置菜单,选择Output。然后勾上下三个选项。其中Create HEX file是编译生成hex文件 设置输出文件路径 编程器ISP设置 返回 练习题一 国内普遍认同的嵌入式系统定义为:以( )为中心,以( )为基础,( )可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 嵌入式系统的重要特征有:( )、( )、( )、( )、多任务的操作系统和专门的开发工具和环境。 嵌入式系统体系结构分为两种:( )和( )。ARM7采用( )结构;DSP和ARM9都采用的( )结构。 计算机指令系统分为( )指令系统和( )指令系统。 嵌入式处理器分成4类:( )、( )、( )和SoC。 嵌入式系统的发展历程,大致经历了以下3个阶段:( )、( )、( )。 嵌入式系统未来的发展趋势是:( )、( )、( )。 练习题一 ( )公司在2004年推出了CM3内核。 2007年6月( )公司宣布了她的第一款基于( )内核的STM32微控制器系列产
显示全部