单片机C语言程序设计基础.ppt

  1. 1、本文档共154页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数与指针 2、指针作为函数的返回值 返回字符串、动态分配的内存等,如 *strcpy, *malloc 注意返回地址的有效性(函数执行完毕后该地址未被回收) 下面两个函数哪个是合法的? 函数与指针 3、指向函数的指针 函数存放在TEXT段,同样具有地址 函数名就是函数在TEXT段的入口地址 跟数组名一样,函数名也可以看作是一个指针常量 所以,函数名也可以赋值给指针变量,那么该指针变量类型呢? 函数指针类型!通过函数指针,也可以间接调用函数。 函数与指针 函数指针的应用: 1、作为函数参数实现回调函数 所谓回调函数是指通过调用其他函数反 过来调用某个函数 模拟面向对象的多态,在UI组件的大量使 用 函数与指针 2、作为结构体的动作域 模拟面向对象的类,在Linux内核中大量使用 作为一个现实中的对象,不但有数据属性,还需要有行为属性 使用对象行为 3.2 Cortex-M3微控制器软件接口标准 什么是CMSIS 微控制器软件接口标准,即 (Cortex Microcontroller Software Interface Standard, CMSIS) 为什么推出CMSIS 一个ARM内核会授权给多个厂家,生产种类繁多的产品开发者增加了软件开发成本 将所有Cortex芯片厂商产品的软件接口标准化,制定了CMSIS标准。 芯片厂商就能够将他们的资源专注于产品外设特性的差异化,从而达到降低开发成本的目的。 3.2 Cortex-M3微控制器软件接口标准 CMSIS 软 件 架 构 3.2 Cortex-M3微控制器软件接口标准 CMSIS层由三部分构成 (1) 核内外设访问层(CPAL,Core Peripheral Access Layer):该层由ARM 负责实现。包括对寄存器名称、地址的定义,对核寄存器、NVIC、调试子系统的访问接口定义以及对特殊用途寄存器的访问接口(例如:CONTROL,xPSR)定义。 (2) 片上外设访问层(DPAL, Device Peripheral Access Layer):该层由芯片厂商负责实现。该层的实现与CPAL 类似,负责对硬件寄存器地址以及外设访问接口进行定义。该层可调用CPAL 层提供的接口函数同时根据设备特性对异常向量表进行扩展,以处理相应外设的中断请求。 (3) 外设访问函数(AFP, Access Functions for Peripherals):该层也由芯片厂商负责实现,主要是提供访问片上外设的访问函数,这一部分是可选的。 概述 STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。 每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。 ST公司2007年10月发布了V1.0版本的固件库,MDK ARM3.22之前的版本均支持该库。2008年6月发布了V2.0版的固件库,从2008年9月推出的MDK ARM3.23版本至今均使用V2.0版本的固件库。V3.0以后的版本相对之前的版本改动较大,本书使用目前较新的V3.4版本。 STM32F10x标准外设库 概述 STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。 每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。 ST公司2007年10月发布了V1.0版本的固件库,MDK ARM3.22之前的版本均支持该库。2008年6月发布了V2.0版的固件库,从2008年9月推出的MDK ARM3.23版本至今均使用V2.0版本的固件库。V3.0以后的版本相对之前的版本

文档评论(0)

Jermain2014 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档