技术

ARM WFI和WFE指令

发表于:09/01/2016 , 关键词: ARM
1. 前言 蜗蜗很早以前就知道有WFI和WFE这两个指令存在,但一直似懂非懂。最近准备研究CPU idle framework,由于WFI是让CPU进入idle状态的一种方法,就下决心把它们弄清楚。 WFI(Wait for interrupt)和WFE(Wait for event)是两个让ARM核进入low-power standby模式的指令,由ARM architecture定义,... 阅读详情

什么是边界扫描(boundary scan)?

发表于:09/01/2016 , 关键词: Keil相关
边界扫描(Boundary scan)是一项测试技术,是在传统的在线测试不在适应大规模,高集成电路测试的情况下而提出的,就是在IC设计的过程中在IC的内部逻辑和每个器件引脚间放置移位寄存器(shift register)。每个移位寄存器叫做一个CELL。这些CELL准许你去控制和观察每个输入/输出引脚的状态。当这些CELL连在一起就形成了一个数据寄存器链(data register chain... 阅读详情

MCU引脚输出模式中推挽输出与开漏输出电路原理区别

发表于:08/31/2016 , 关键词: MCU
开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。 我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,... 阅读详情

keil MDK中如何生成*.bin格式的文件

发表于:08/31/2016 , 关键词: Keil相关
在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥Realview MDK集成开发环境的优势,将*.axf格式文件或... 阅读详情

详细解读Cortex-A32处理器,打造您的超高能效嵌入式环境

发表于:08/31/2016 , 关键词: ARM Cortex
Cortex-A32是ARM架构中独一无二的产品,拥有重要地位。Cortex-A32基于ARMv8-A架构,却是针对32位设计的处理器。下图介绍了Cortex-A32与ARMv8-A架构的匹配程度,并与Cortex-A35进行了对比。 图一:Cortex-A32和ARMv8-A 基于上述,Cortex-A35可以实现两种执行态,分别为32位AArch32及64位AArch64,... 阅读详情

基于ARM的十一种嵌入式操作系统概述

发表于:08/30/2016 , 关键词: ARM, 嵌入式
嵌入式操作系统(Embedded Operation System,EOS)是指用于嵌入式系统的操作系统。嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。 嵌入式LINUX 嵌入式Linux... 阅读详情

ARM中C语言和汇编语言混合编程

发表于:08/30/2016 , 关键词: ARM, C语言, 汇编语言, 编程工具
在嵌入式系统开发中,目前使用的主要编程语言是C 和汇编,虽然C++已经有相应的编译器,但是现在使用还是比较少的。 在稍大规模的嵌入式程序设计中,大部分的代码都是用C来编写的,主要是因为C语言具有较强的结构性,便于人的理解,并且具有大量的库支持。但对于一写硬件上的操作,很多地方还是要用到汇编语言,例如硬件系统的初始化中的CPU 状态的设定,中断的使能,主频的设定,RAM控制参数等。... 阅读详情

ARM64架构下地址翻译相关的宏定义

发表于:08/30/2016 , 关键词: ARM
作者:linuxer 来源:蜗窝科技 一、前言 本文主要分析linux-4.4.6/arch/arm64/include/asm目录下的若干和地址翻译相关的头文件(例如page.h、pgtable.h、pgtable-hwdef.h、pgtable-prot.h等文件)中的各种宏定义以及相关的ARM64硬件知识。硬肯ARM ARM文档有时候太费劲,结合linux源代码会让学习变得简单一些。 二... 阅读详情

与ARM7相比,Cortex-M3优势明显!

发表于:08/29/2016 , 关键词: Cortex-M3
要使用低成本的 32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。 1.ARM实现方法   ARM Cortex-M3是一种基于ARM V7架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线;... 阅读详情

单片机的小秘密:指令数据都被写在了哪?

发表于:08/29/2016 , 关键词: 单片机, 指令
单片机的正常运行的前提,硬件是一方面,另一方面就是单片机需要执行的程序。大家都知道单片机会执行写好的程序,但是单片机从哪里开始读取指令,数据又被写在了哪里呢? 让我们从最开始的环节讲起。在单片机上电的瞬间,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的main之前,还有一系列其他的的初始化要做,如堆栈的初始化,... 阅读详情

特别实用的单片机编程经验总结!

发表于:08/25/2016 , 关键词: 单片机, 编程工具
本文主要总结一些比较实用的单片机编程经验: 经验之一:用“软件陷阱+程序口令”对付PC指针的弹飞 当CPU受到外界干扰,有时PC指针会飞到另一段程序中,或跳到空白段去。其实,如果PC指针飞到空白段去,倒也好处理。只要在空白段设立软件陷阱(拦截指令),将程序拦截到初始化段或程序错误处理段。但是,如果PC指针飞到另一段程序中去了,系统如何办?小匠在这里推荐一种方法——程序口令,思路如下: 1、... 阅读详情

Proteus8与Keil4的联接调试教程

发表于:08/25/2016 , 关键词: Keil相关, 仿真工具
首先安装vdmagdi软件,然后再进行以下设置: 下载地址:http://pan.baidu.com/s/1i30ultb 在Keil软件上单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮 , 弹出窗口,点击“Debug”按钮,出现如图所示页面。 在 出现的对话框里在右栏上部的下拉菜单里选中“Proteus... 阅读详情

Proteus中常用的元器件中英文名称对照

发表于:08/24/2016 , 关键词: 仿真工具
Proteus用起来十分方便,其对中国学生最大的障碍就是很多朋友不知道自己想要寻找的器件用英文怎么说,从而无法在Proteus中快速找到自己需要的器件。下面,我们就简单先来了解一下Proteus中器件的种类。 Proteus中常用的元器件被分成了25大类,为了方便快速地查找到相应器件,在Pick Devices(拾取元器件)对话框中,你应该首先选中相应的大类,然后使用关键词进行搜寻。... 阅读详情

ARM中异常中断问题分析总结

发表于:08/23/2016 , 关键词: ARM, 中断
一、ARM中异常中断的类型: 异常中断名称 含义 复位(Reset) 当处理器复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。复位异常中断通常用在下面几种情况: 1、系统加电时 2、系统复位时 3、跳转到复位中断向量处执行,称为软复位 未定义的指令 当ARM处理器或者是系统中协处理器认为当前指令未定义时,产生未定义指令异常中断。可以通过该异常中断机制仿真浮点向量运算... 阅读详情

为什么我们需要这么多的寻址方式?

发表于:08/23/2016 , 关键词: 单片机, 寻址方式
寻找操作数可以通过直接给的方式(立即寻址)和直接给出数所在单元地址的方式(直接寻址),这就够了吗? 看这个问题,要求从30H单元开始,取20个数,分别送入A累加器。 就我们目前掌握的办法而言,要从30H单元取数,就用MOV A,30H,那么下一个数呢?是31H单元的,怎么取呢?还是只能用MOV A,31H,那么20个数,不是得20条指令才能写完吗?这里只有20个数,如果要送200个或2000个数... 阅读详情

页面