跳转到主要内容
MCU加油站
Toggle navigation
首页
技术
新闻
下载中心
互动专区
视频
评测
活动
博客
登录
注册
技术
聊聊ARM下的函数栈
这篇文章简要说说函数是怎么传入参数的,我们都知道,当一个函数调用使用少量参数(ARM上是少于等于4个)时,参数是通过寄存器进行传值(ARM上是通过r0,r1,r2,r3),而当参数多于4个时,会将多出的参数压入栈中进行传递(其实在函数调用过程中也会把r0,r1,r2,r3传递的参数压入栈),具体是什么实现的呢,我们看看。 函数栈 ...
阅读详情
2016-10-09 |
ARM
浅谈单片机以太网接入方案
单片机的种类繁多,从低端到高端,有以51单片机为代表的8位单片机和以ARM为代表的32位单片机,不同档次的单片机实现网络接口的方法不同。对于像ARM等高端处理器一般都可以运行嵌入式操作系统,例如嵌入式Linux。对于无操作系统要求的单片机如何实现网络接入,我下面将这些方案按TCP/IP协议栈的不同归结为两大类:第一类是传统的软件TCP/IP协议栈方案;第二类是最新的硬件TCP/IP协议栈方案。...
阅读详情
2016-10-09 |
单片机
,
以太网
C语言经典算法100例(二)
11、判断某一年是否是闰年。 [cpp] view plain copy print? //判断某一年份是否是闰年 int IsLeapYear(int year) { return (year % 400 == 0 || (year % 4 == 0) && (year % 100 != 0)); } 运行结果: 12、获得某年、某月的最大天数。
2016-10-09 |
C语言
,
编程工具
μCOS-II移植到ARM处理器上的几个要点
一、uCOS II在ARM处理器上移植过程中的中断处理 uCOS II是一个源码公开、可移植、可固化、可剪裁和抢占式的实时多任务操作系统,其大部分源码是用ANSI C编写,与处理器硬件相关的部分使用汇编语言编写。总量约200行的汇编语言部分被压缩到最低限度,以便于移植到任何一种其它的CPU上。 uCOS II最多可支持56个任务,其内核为占先式,总是执行就绪态的优先级最高的任务,...
阅读详情
2016-10-08 |
Cortex-M3
,
μCOS-II
五点保证MCU低功耗
低功耗是MCU的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验。 平时我们在做产品的时候,基本的功能实现很简单,但只要涉及低功耗的问题就比较棘手了,比如某些可以低到微安级的MCU,而自己设计的低功耗怎么测都是毫安级的,电流竟然能够高出标准几百到上千倍,遇到这种情况千万不要怕,只要认真你就赢了。...
阅读详情
2016-10-08 |
MCU
深入浅出解析IGBT的工作原理及作用
本文通过等效电路分析,通俗易懂的讲解IGBT的工作原理和作用,并精简的指出了IGBT的特点。可以说,IGBT是一个非通即断的开关,兼有MOSFET的高输入阻抗和GTR的低导通压降两方面的优点。 IGBT(绝缘栅双极型晶体管),是由BJT(双极型三极管)和MOS(绝缘栅型场效应管)组成的复合全控型电压驱动式功率半导体器件,兼有MOSFET的高输入阻抗和GTR的低导通压降两方面的优点。...
阅读详情
2016-10-08 |
IGBT
C语言经典算法100例(一)
C语言中有有许多经典的算法,这些算法都是许多人的智慧结晶,也是编程中常用的算法,这里面包含了众多算法思想,掌握这些算法,对于学习更高级的、更难的算法都会有很大的帮助,会为自己的算法学习打下坚实的基础。 接下来我们先来看10道: (1)输出9*9乘法口诀。 [cpp] view plain copy print? //9*9乘法口诀表 void Table99() { int i,j...
阅读详情
2016-10-08 |
C语言
,
编程工具
单片机Keil软件仿真与调试技巧
一、引言 单片机软件开发过程中,软件调试遇到的各种问题常令初学者感到不知所措。实际上。各种仿真开发软件的程序调试基本方法和技巧大同小异,掌握正确的程序调试基本技巧。对于排查这些程序错误问题可以起到举一反三、事半功倍的效果。软件调试是单片机技术人员必须掌握的重要基本技能。 下面以单片机常用开发软件Keil为例,通过一个项目任务实例来介绍单片机软件仿真与调试的方法。 二、Keil仿真与调试...
阅读详情
2016-09-30 |
单片机
,
Keil
PCB电路板散热技巧
电子设备工作时产生的热量,使设备内部温度迅速上升,若不及时将该热量散发,设备会持续升温,器件就会因过热失效,电子设备的可靠性将下降。因此,对电路板进行散热处理十分重要。 一、印制电路板温升因素分析 引起印制板温升的直接原因是由于电路功耗器件的存在,电子器件均不同程度地存在功耗,发热强度随功耗的大小变化。 印制板中温升的2种现象: (1)局部温升或大面积温升; (2)短时温升或长时间温升。...
阅读详情
2016-09-30 |
PCB
C++ 及标准库中的那些大坑,别踩了!
C++及标准库中,其实存在了一些大坑,你都知道怎么避免吗? 1、变量初始化 这是使用 C++11 codecvt 时遇到的一个坑,转换编码时,mbstate_t 这个中间状态变量,必须初始化为0,否则运行出错,即: 这是第一个坑,并不算太坑,还比较容易调试和发现,也怪自己大意了。 经验:C++中的变量一定要初始化后再使用。 2、匿名 std::thread 对象 这个坑要和 boost...
阅读详情
2016-09-30 |
编程工具
ARM编译中的RO、RW和ZI DATA区段
ARM程序(指在ARM系统中正在执行的程序,而非保存在ROM中的bin文件)的组成 一个ARM程序包含3部分:RO段,RW段和ZI段 RO是程序中的指令和常量 RW是程序中的已初始化变量 ZI是程序中的未初始化的变量 由以上3点说明可以理解为: RO就是readonly, RW就是read/write, ZI就是zero ARM映像文件的组成 所谓ARM映像文件就是指烧录到ROM中的bin文件,...
阅读详情
2016-09-30 |
ARM
用I/O口模拟总线时序
在做总线通信过程中,我们很少会用到这样方法,一般在我们选择MCU的时候都会带有你所需要的通信接口。但是,对于一些简单的通信应该用的场合,一 般在一些传感器的数据通信过程中,传感器厂商会将通信协议做一些改变,这些通信协议也没有一个标准的协议规定。以至于传感器的兼容性很差,甚至有时候找不 到能够与其通信的MCU,这个时候有一种方法就是用I/O口来模拟通信总线(由于I/...
阅读详情
2016-09-29 |
I/O口
信号逻辑电平标准详解
信号的逻辑电平经历了从单端信号到差分信号、从低速信号到高速信号的发展过程。最基本的单端信号逻辑电平为CMOS、TTL,在此基础上随着电压摆幅的降低,出现LVCMOS、LVTTL等逻辑电平,随着信号速率的提升又出现ECL、PECL、LVPECL、LVDS、CML等差分信号逻辑电平。 1、信号逻辑电平参数概念定义 逻辑电平是指数字信号电压的高、低电平,相关参数定义如下:
2016-09-29 |
信号逻辑电平
SPI总线协议及SPI时序图详解
SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。 SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于 CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;...
阅读详情
2016-09-28 |
单片机
,
SPI
如何写出高效优美的单片机C语言代码?
程序能跑起来并不见得你的代码就是很好的c代码了,衡量代码的好坏应该从以下几个方面来看: 1、代码稳定,没有隐患。 2、执行效率高。 3、可读性高。 4、便于移植。 下面总结一些网络上的技巧、经验! 1、如果可以的话少用库函数,便于不同的mcu和编译器间的移植 2、选择合适的算法和数据结构 应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。...
阅读详情
2016-09-28 |
编程工具
‹‹
251 中的第 238
››