摘要:
引言ARM公司于2008年11月12日发布了armCortex微控制器软件接口标准(CMSIS:CortexMicrocon-trollerSoftwareInteRFaceStandard)。CMSIS是独立于供应商的Cortex-M微控制器系列硬件抽象层,为芯片厂商和中间件供应商提供了连续的、简单的微控制器软件接口,简化了软件复用,降低了Cortex-M0上操作系统的移植难度,并缩短了新入门的微控制器开发者的学习时间和新产品的上市时间。根据近期的调查研究,软件开发已经被嵌入式行业公认为最主要的开发成本。图19.9-1为近年来软件开发与硬件开发成本对比图。因此,arm与Atmel、IAR、K 阅读全文
摘要:
NuMicroM051系列微控制器本身有对系统电压进行检测的功能,一旦系统电压低于设定的门限电压后,将自动停止正常运行,并可设置进入复位状态。当系统电压稳定恢复到设定的门限电压之上,将再次启动运行,即相当于一次掉电再上电的复位。作为一个正式的系统或产品,当系统基本功能调试完成后,一旦进行现场测试阶段,请注意马上改写芯片的配置位,启动内部欠压电压检测功能。NuMicroM051系列微控制器支持宽电压工作范围,但是经常工作在5V或3V系统,有必要进行适当的配置。对于5V系统,设置欠压电压为4.5V;对于3V系统,设置欠压电压为2.7V。当允许欠压电压检测时,一旦NuMicroM051系列微控制器的 阅读全文
摘要:
USER配置支持XT1时钟滤波器使能、复位后CPU时钟选择、欠压检测使能、欠压电压选择、欠压复位使能、配置启动选择、安全锁等功能。………………书籍下载地址(复制到下载工具进行下载):http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rarhttp://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar注:书籍内容会不定期进行更新! 阅读全文
摘要:
一个映像文件里可以包含多个域(region),它们在装载和运行时可以有不同的地址。这个地址可以用armlink的两个参数来确定:ro-base设置代码段(RO)在装载域(loadview)和运行域(executionview)里的地址。rw-base设置数据段(RW)在运行域里的地址。实际上,当域的内存映射关系比较简单时,可以使用这两个参数,但它们不能处理更为复杂的内存映射(memeorymap),在这种情况下,就要用分散装载(scatterloading)技术。分散装载技术可以把应用程序分割成多个RO域和RW域,并且给它们指定不同的地址。这在嵌入式的实际应用中,有很大好处。在一个嵌入式系统中 阅读全文
摘要:
用户应用程序在运行过程当中,有时会有特殊需求,需要实现单片机系统软复位(热启动之一),传统的单片机由于硬件上未支持此功能,用户必选用软件模拟实现,实现起来比较麻烦。NuMicroM051微控制器实现了此功能,用户只需简单的控制IPRSTC1寄存器的其中两位CHIP_RST/CPU_RST就可以系统复位了,为了执行复位的目的,当然也可以通过看门狗进行复位,但是没有前者来得直接。……………………………………书籍下载地址(复制到下载工具进行下载):http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rarhttp://files.c. 阅读全文
摘要:
生活上有很多东西都搭载着单片机而进行工作的,而且有相当一部分的设备、仪器、产品都是靠蓄电池来提供电源的,往往这些靠蓄电池供电的设备、仪器、产品都能够用上一大段时间。例如我们经常接触到的遥控器,假若MCU一直不停地运行,不出一段时间,电池的能量会很快耗光。当然在NuMicroM051系列单片机搭载的系统中,不光有单片机需要耗电,同时还有其他外围部件耗电的,因此,我们在适当的时候关闭设备的运行同时将NuMicroM051系列单片机的运行模式进入空闲模式或者掉电模式,以节省不必要的能源,达到低功耗的目的。平时NuMicroM051系列单片机正常工作的电流为4毫安~7毫安;当进入掉电模式下,它的工作. 阅读全文
摘要:
那么什么是Hex文件呢?IntelHex文件是由一行行符合IntelHex文件格式的文本所构成的ASCII文本文件。在IntelHex文件中,每一行包含一个Hex记录。这些记录由对应机器语言码和常量数据的十六进制编码数字组成。IntelHex文件通常用于传输将被存于ROM或者EPROM中的程序和数据,如图19.3-1。大多数EPROM编程器或模拟器使用IntelHex文件。19.3.1Hex的结构IntelHex由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列: :llaaaatt[dd...]cc 每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每... 阅读全文
摘要:
什么是LIB文件呢?LIB文件(*.lib)实质就是C文件(*.c)的另一面,不具可见性,却能够在编译时提供调用,如图19.2-1。LIB文件在实际应用中很大的作用就是当集成商使用自家开发的设备,向其提供的是LIB文件,而不是C文件,这样就很好地保护自家的知识产权。………………………………………………书籍下载地址(复制到下载工具进行下载):http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rarhttp://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar注:书籍. 阅读全文
摘要:
在Keil新建的所有工程中,毫无例外地都包含startup_M051.s,如图19.1-1。图19.1-1startup_M051.s该文件主要作用于上电时初始化单片机的硬件堆栈、初始化RAM、分配内存空间和跳转到主函数即main函数。硬件堆栈是用来存放函数调用地址、变量和寄存器值的;分配内存空间为异常提供更加快速的访问,减少中断延迟。如果不加载该startup_M051.s文件,编译的代码可能会使单片机不能正常工作。那么什么是堆栈呢?在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈这两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶( 阅读全文
摘要:
18.1实时系统与前后台系统1.实时系统实时系统简称RTOS,能够运行多个任务,并且根据不同任务进行资源管理、任务调度、消息管理等工作,同时RTOS能够根据各个任务的优先级来进行任务调度,以达到保证实时性的要求。RTOS能够使CPU的利用率得到最大的发挥,并且可以使应用程序模块化,而在实时应用中,开发人员可以将复杂的应用程序层次化,这样代码更加容易设计与维护,比较常见的RTOS如ucos、VxWorks、freertos等,更譬如较高级的应用在手机上的操作系统主要有PalmOS、Symbian(塞班)、Windowsmobile、Linux、Android(安卓)、iPhone(苹果)OS如图 阅读全文
摘要:
17.1概述什么是模拟信号?主要是与离散的数字信号相对的连续的信号。模拟信号分布于自然界的各个角落,如每天温度的变化,而数字信号是人为的抽象出来的在时间上不连续的信号。电学上的模拟信号是主要是指幅度和相位都连续的电信号,此信号可以被模拟电路进行各种运算,如放大,相加,相乘等。 模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,如目前广播的声音信号,或图像信号等。常见的模拟信号有正弦波、调幅波、阻尼震荡波、指数衰减波,如图17.1-1。什么是数字信号?数字信号指幅度的取值是离散的,幅值表示被限制在有限个数值之内。二进制码就是一种数字信号。二进制码受噪声的影. 阅读全文
摘要:
16.1概述SPI是英文“SerialPeripheralInterface”的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。SPI接口是Motorola首先提出的全双工三线同步串行外围接口,采用主从模式(MasterSlave)架构;支持多slave模式应用,一般仅支持单Master。时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSBfirst);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几M 阅读全文
摘要:
15.1概述I2C为双线,双向串行总线,为设备之间的数据通讯提供了简单有效的方法。标准I2C是多主机总线,包括冲突检测和仲裁机制以防止在两个或多个主机试图同时控制总线时发生的数据冲突。数据在主机与从机间同步于SCL时钟线在SDA数据线上一字节一字节的传输,每个字节为8位长度,一个SCL时钟脉冲传输一个数据位,数据由最高位MSB首先传输,每个传输字节后跟随一个应答位,每个位在SCL为高时采样;因此,SDA线只有在SCL为低时才可以改变,在SCL为高时SDA必须保持稳定。当SCL为高时,SDA线上的跳变视为一个命令(START或STOP),更多详细的I2C总线时序请参考图15.1-1。图15.1- 阅读全文