跳转到主要内容
MCU加油站
Toggle navigation
首页
技术
新闻
下载中心
互动专区
视频
评测
活动
博客
登录
注册
技术
关于单片机中晶振的那些事儿
晶振,在板子上看上去一个不起眼的小器件,但是在数字电路里,就像是整个电路的心脏。数字电路的所有工作都离不开时钟,晶振的好坏,晶振电路设计的好坏,会影响到整个系统的稳定性。所以说晶振是智能硬件的“心脏”。 每个单片机系统里都有晶振(晶体震荡器),在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高...
阅读详情
2016-09-05 |
单片机
,
晶振
嵌入式软件可靠性设计的一些理解
1、前言 设备的可靠性涉及多个方面:稳定的硬件、优秀的软件架构、严格的测试以及市场和时间的检验等等。这里着重谈一下作者自己对嵌入式软件可靠性设计的一些理解,通过一定的技巧和方法提高软件可靠性。这里所说的嵌入式设备,是指使用单片机、ARM7、Cortex-M0,M3之类为核心的测控或工控系统。 嵌入式软件可靠性设计应该从防错、判错和容错三方面进行考虑。 此外,还需理解自己所使用的编译器特性...
阅读详情
2016-09-05 |
编程工具
,
仿真工具,Keil相关
Cortex-M0中断控制和系统控制
作者:Founder_U 一、 NVIC和系统控制块特性 1. 灵活的中断管理:使能/禁止中断,优先级配置 2. 硬件嵌套中断支持 3. 向量化的异常入口 4. 中断屏蔽 5. NVIC寄存器的起始地址:0xE000E100, 对其访问必须是每次32bit 6. SCB的起始地址: 0xE000E010,也是每次32bit访问。 二. 中断使能和清除使能 1. 中断寄存器是可编程的,...
阅读详情
2016-09-05 |
Cortex-M0
ARM Cortex-M0的异常与中断
作者:Founder_U 1、异常类型及编号 Cortex-M0的每个异常源都有一个单独的编号: 1~15内部系统异常:Reset(1), NMI(2), H/W Error(3), SVC(11), PndSV(14), SysTick(15)其他编号未用; 16~47外部中断:IRQ#0~IRQ#31。 2、异常优先级 (Cortex-M0 支持7个) 1). Cortex-M0...
阅读详情
2016-09-02 |
Cortex-M0
ARM64的启动过程之(一):内核第一个脚印
作者:linuxer 一、前言 kernel的整个启动过程涉及的内容很多,不可能每一个细节都描述清楚,因此我打算针对部分和ARM64相关的启动步骤进行学习、整理,并方便后续查阅。本文实际上描述在系统启动最开始的时候,bootloader和kernel的交互以及kernel如何保存bootloader传递的参数并进行校验,此外,还有一些最基础的硬件初始化的内容。 本文中的source来自4.1....
阅读详情
2016-09-02 |
ARM
编写优质嵌入式C程序
摘要:本文首先分析了C语言的陷阱和缺陷,对容易犯错的地方进行归纳整理;分析了编译器语义检查的不足之处并给出防范措施,以Keil MDK编译器为例,介绍了该编译器的特性、对未定义行为的处理以及一些高级应用;在此基础上,介绍了防御性编程的概念,提出了编程过程中就应该防范于未然的多种措施;提出了测试对编写优质嵌入式程序的重要作用以及常用测试方法;最后,本文试图以更高的层次看待编程,...
阅读详情
2016-09-02 |
Keil相关
,
仿真工具
学习嵌入式系统你需要掌握的基础知识!
本文主要介绍嵌入式系统的一些基础知识,希望对各位有帮助。 嵌入式系统基础 1、嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 (2)嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。 (3)知识产权核(IP核):具有知识产权的、功能具体、...
阅读详情
2016-09-01 |
嵌入式
ARM WFI和WFE指令
1. 前言 蜗蜗很早以前就知道有WFI和WFE这两个指令存在,但一直似懂非懂。最近准备研究CPU idle framework,由于WFI是让CPU进入idle状态的一种方法,就下决心把它们弄清楚。 WFI(Wait for interrupt)和WFE(Wait for event)是两个让ARM核进入low-power standby模式的指令,由ARM architecture定义,...
阅读详情
2016-09-01 |
ARM
什么是边界扫描(boundary scan)?
边界扫描(Boundary scan)是一项测试技术,是在传统的在线测试不在适应大规模,高集成电路测试的情况下而提出的,就是在IC设计的过程中在IC的内部逻辑和每个器件引脚间放置移位寄存器(shift register)。每个移位寄存器叫做一个CELL。这些CELL准许你去控制和观察每个输入/输出引脚的状态。当这些CELL连在一起就形成了一个数据寄存器链(data register chain...
阅读详情
2016-09-01 |
Keil相关
MCU引脚输出模式中推挽输出与开漏输出电路原理区别
开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。 我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,...
阅读详情
2016-08-31 |
MCU
keil MDK中如何生成*.bin格式的文件
在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥Realview MDK集成开发环境的优势,将*.axf格式文件或...
阅读详情
2016-08-31 |
Keil相关
详细解读Cortex-A32处理器,打造您的超高能效嵌入式环境
Cortex-A32是ARM架构中独一无二的产品,拥有重要地位。Cortex-A32基于ARMv8-A架构,却是针对32位设计的处理器。下图介绍了Cortex-A32与ARMv8-A架构的匹配程度,并与Cortex-A35进行了对比。 图一:Cortex-A32和ARMv8-A 基于上述,Cortex-A35可以实现两种执行态,分别为32位AArch32及64位AArch64,...
阅读详情
2016-08-31 |
ARM Cortex
基于ARM的十一种嵌入式操作系统概述
嵌入式操作系统(Embedded Operation System,EOS)是指用于嵌入式系统的操作系统。嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。 嵌入式LINUX 嵌入式Linux...
阅读详情
2016-08-30 |
ARM
,
嵌入式
ARM中C语言和汇编语言混合编程
在嵌入式系统开发中,目前使用的主要编程语言是C 和汇编,虽然C++已经有相应的编译器,但是现在使用还是比较少的。 在稍大规模的嵌入式程序设计中,大部分的代码都是用C来编写的,主要是因为C语言具有较强的结构性,便于人的理解,并且具有大量的库支持。但对于一写硬件上的操作,很多地方还是要用到汇编语言,例如硬件系统的初始化中的CPU 状态的设定,中断的使能,主频的设定,RAM控制参数等。...
阅读详情
2016-08-30 |
ARM
,
C语言
,
汇编语言
,
编程工具
ARM64架构下地址翻译相关的宏定义
作者:linuxer 来源:蜗窝科技 一、前言 本文主要分析linux-4.4.6/arch/arm64/include/asm目录下的若干和地址翻译相关的头文件(例如page.h、pgtable.h、pgtable-hwdef.h、pgtable-prot.h等文件)中的各种宏定义以及相关的ARM64硬件知识。硬肯ARM ARM文档有时候太费劲,结合linux源代码会让学习变得简单一些。 二...
阅读详情
2016-08-30 |
ARM
‹‹
253 中的第 245
››