开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。
推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。
我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。
在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥Realview MDK集成开发环境的优势,将*.axf格式文件或*.hex格式文件转换成*.bin格式的文件是十分自然的想法。本文将详细的探讨这种转换方法。
在Realview MDK中,生成*.bin格式文件的工具是ARM公司的RVCT开发套件中的fromelf.exe。默认安装下,它位于C/:Keil/ARM/BIN40文件夹下。
下面将介绍它在Keil MDK中的使用方法:
Cortex-A32是ARM架构中独一无二的产品,拥有重要地位。Cortex-A32基于ARMv8-A架构,却是针对32位设计的处理器。下图介绍了Cortex-A32与ARMv8-A架构的匹配程度,并与Cortex-A35进行了对比。
<center><img src="http://mm32.eetrend.com/files/2016-08/wen_zhang_/100002722-8836-1.png&q…; alt=""></center>
自25年前ARM1的诞生起,ARM指令集便不断演变。Cortex-A处理器实际支持两个指令集,每个指令集都有各自的扩展。
<strong>ARM指令集 </strong>
ARM指令集基于首款ARM处理器支持的原始指令集。该指令集已经过了数次扩展。简而言之,这是一个负载-存储指令集,拥有不同指令组,主要用于数据处理、存储访问、系统控制和控制流程。现代的ARM指令集非常强大,适用范围非常广泛。在指令集内,所有指令被编码为32位固定长度的字,并且必须与字边界一致。
<strong>Thumb指令集 </strong>
<strong>常用逻辑电路</strong>
在逻辑电路中,输入和输出只有两种状态,即高电平和低电平。通常以逻辑“1”和“0”表示电平高低。
<strong>1、与门 </strong>
是一个能够实现逻辑乘运算的、多端输入、单端输出的逻辑电路。
嵌入式操作系统(Embedded Operation System,EOS)是指用于嵌入式系统的操作系统。嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。
<strong>嵌入式LINUX</strong>
Keil MDK,也称MDK-ARM,Realview MDK、I-MDK、uVision4 等。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。
MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。所有版本均提供一个完善的C / C++开发环境,其中MDK-Professional还包含大量的中间库。
MDK功能特点
1、完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。
2、行业领先的ARM C/C++编译工具链
Keil MDK,也称MDK-ARM,Realview MDK、I-MDK、uVision4 等。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。
MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。所有版本均提供一个完善的C / C++开发环境,其中MDK-Professional还包含大量的中间库。
<strong>MDK功能特点</strong>
1、完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。
<strong>ARM汇编伪指令</strong>
<strong>伪操作、宏指令及伪指令的概念</strong>
伪操作是ARM汇编语言程序里的一些特殊指令助记符,主要是为完成汇编程序做各种准备工作,在源程序进行汇编时由汇编程序处理,而不是在处理器运行期间由机器执行。
宏指令是一段独立的程序代码,它通过伪操作来定义。通过宏名来调用宏,并可以设置相应的参数。宏定义本身不会产生代码,只是在调用它时把宏体插入到源程序中。
伪指令也是ARM汇编语言程序里的特殊指令助记符,也不在处理器运行期间由机器执行,它们在汇编时将被合适的机器指令代替成ARM或Thumb指令从而实现真正指令操作。
<strong>伪操作</strong>
在嵌入式系统开发中,目前使用的主要编程语言是C 和汇编,虽然C++已经有相应的编译器,但是现在使用还是比较少的。
在稍大规模的嵌入式程序设计中,大部分的代码都是用C来编写的,主要是因为C语言具有较强的结构性,便于人的理解,并且具有大量的库支持。但对于一写硬件上的操作,很多地方还是要用到汇编语言,例如硬件系统的初始化中的CPU 状态的设定,中断的使能,主频的设定,RAM控制参数等。另外在一些对性能非常敏感的代码块,基于汇编与机器码一一对应的关系,这时不能依靠C编译器的生成代码,而要手工编写汇编,从而达到优化的目的。汇编语言是和CPU的指令集紧密相连的,作为涉及底层的嵌入式系统开发,熟练对应汇编语言的使用也是必须的。
作者:linuxer
来源:<a href="http://www.wowotech.net/memory_management/arm64-memory-addressing.html"…
<strong>一、前言</strong>
本文主要讲述了单片机的入门方法与学习误区,希望对你的学习有所帮助。
玩单片机可以有以下几个等级:
1、纯硬件DIY:这一级玩法很简单,只要有一个ISP下载线(和手机数据线的性质差不多),自己制作硬件电路,然后把单片机的程序烧到单片机里就行了。不需要懂编程。在我的网站里有许多小制作,每一个制作都有提供HEX文件,是下载给单片机的程序。很简单,和玩数字电路一样简单。
2、半编程DIY:硬件制作也会了,纯硬件DIY已经熟悉的时候,就可以试着玩玩编程了。半编程DIY并不是自己从头开始写程序,一开始也没有这个水平,呵呵。这一部是照着别人已经写好的程序,然后在现在程序上改一改数值、换一换语句。比如我的SHOOK16摇摇棒,就可以自己在源程序里只改字幕部分的程序代码,而不去管应用程序和硬件驱动程序是如何实现的。
要使用低成本的 32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。
<strong>1.ARM实现方法 </strong>
ARM Cortex-M3是一种基于ARM V7架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线;ARM7是冯诺伊曼结构 冯诺伊曼结构下,数据和指令共用一条总线 。从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。
本文将介绍灵动微电子独立开发的MM32 MiniBoard!!!
该开发板主控芯片MM32F103系列芯片由上海灵动微电子股份有限公司开发的32 位单片机,MM32F103芯片最高工作频率96MHz,内置高速存储器,丰富的增强I/O 端口和联接到两条APB 总线的外设。MM32F103所有型号的器件都包含2 个12 位的ADC、2个12 位的DAC、2 个电压比较器、3 个通用16 位定时器和1 个PWM 高级定时器,还包含标准和先进的通信接口: 2 个I2C 接口和SPI 接口、3 个UART 接口、一个USB 接口和一个CAN 接口,丰富的外设配置,使得MM32F103 产品微控制器适合于多种应用场合。
这家去年挂牌上市的公司,在上市前没有融过资,记得在该公司成立刚一年的时候,笔者就采访过该公司,那时他们还只是专注于芯片设计服务,但在5年之后…
记得在灵动微电子刚成立一年的时候,笔者就采访过该公司,那时公司还只是专注于芯片设计与芯片应用方案的设计,但在公司成立的第一年内,销售额就超过了1000万。
现在,灵动微电子已经度过了自己的第一个五年,这家去年挂牌上市的公司,在上市前没有融过资,初期主打设计服务/培训,稳定之后再用这部分的收入来支持自己品牌的MCU业务,两条腿走路,不仅设计服务有声有色,自己品牌的MCU也是得到了产业上下游的关注。
单片机的正常运行的前提,硬件是一方面,另一方面就是单片机需要执行的程序。大家都知道单片机会执行写好的程序,但是单片机从哪里开始读取指令,数据又被写在了哪里呢?
让我们从最开始的环节讲起。在单片机上电的瞬间,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的main之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些很少回去修改)。PC在上电时,和MCU差不多,不过读取的是BIOS,有它完成了很多初始化操作,最后,调用系统的初始化函数,将控制权交给了操作系统,于是我们看到了Windows、Linux系统启动了。
2015年是MCU市场的一个分水岭。物联网与智能硬件的发展带动32位MCU需求快速上升,据相关数据显示,去年32位MCU的出货量甚至超过了4位+8位MCU的总和,并会在未来几年里保持30%左右的高速增长!
云汉芯城产品副总裁程凯亦表示,从公司平台的大数据反馈来看,32位MCU一周搜索量可以达到2万次,平均3000次/天,势头火热。
正是在这样的背景下,上海灵动微电子股份有限公司(后简称“灵动微”)于今年8月下旬发布了三款32位通用MCU系列产品:基于Cortex-M3内核的MM32F103系列(今年5月已在市场供货)、基于Cortex-M0的MM32F031系列和MM32P011系列(预计今年Q4面世),分别瞄准了中高端、中低端、超低端市场,并采用了国际领先的封测供应商,以显灵动微对产品品质的严格要求。
ARM嵌入式和单片机学习有着密不可分的关系,在学习单片机的过程中积累必要的学习经验和知识是非常有必要的,如何在这一过程中逐渐成为高级嵌入式工程师呢?
本文将为大家介绍如何在学习过程中,积累成为高级嵌入式系统硬件工程师要具备的技能。
对于硬件来讲有几个方向,就单纯信号来说,分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大,因此年轻人搞的较少。
随着技术的发展,出现了模拟电路数字化,比如手机的Modem射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定手机的射频模块,只要达到一般程度可能月薪都在15K以上。
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
本文介绍了LED 显示输出的I/O口实际,以及编程。很明显,要点亮使发光二极管,必须使单片机的I/O口P1.0输出低电平。于是我们的任务就是编程序使P1.0输出地电平。
<center><img src="http://mm32.eetrend.com/files/2016-08/wen_zhang_/100002672-8631-14f7278…; alt=""></center>





