![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
「已注销」
这个作者很懒,什么都没留下…
展开
-
SPI,I2C和UART的总结
参考:嵌入式工程师面对IIC和SPI时,该怎么选择?SPI、I2C、UART(即串口)三种串行总线详解区别:1. UART是全双工方式,主机和从机至少要接三根线,RX(接收)、TX(发送)和GND;2. SPI是全双工串行总线,由一个主设备和多个从设备组成,由四跟信号线组成:SDI(串行数据输入)、SDO(串行数据输出)、SCK(串行移位时钟)、CS(从使能),以CS选择从...原创 2019-04-26 22:13:46 · 1434 阅读 · 0 评论 -
实时系统和实时操作系统
实时系统:必须再有限和确定的时间内对外部事件做出响应的信息系统。评判实时系统是处理事件的时间的可预见性和确定性。一个实时系统是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。无论是逻辑还是时序出现偏差,都将引起严重的后果。非实时系统追求系统的平均响应时间和用户使用的方便性。 实时系统主要考虑在最坏情况下系统的行为的可预...原创 2019-08-02 19:59:55 · 1692 阅读 · 0 评论 -
为何 C 语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈
之前看了很多关亍uboot的分析,其中就有说要为C诧言的运行,准备好堆栈。 而自己在Uboot的start.S汇编代码中,关亍系统初始化,也看到有堆栈指针初始化返个劢作。但 是,从来叧是看到有人说系统初始化要初始化堆栈,即正确给堆栈指针sp赋值,但是却从来没 有看到有人解释,为何要初始化堆栈。所以,接下来的内容,就是绊过一定的探究,试图来解释 一下,为何要初始化堆栈,即: 为何C诧言的函数调用要用...原创 2019-07-07 10:15:40 · 563 阅读 · 0 评论 -
USB总线学习
USB:UniversalSerialBus(通用串行总线)USB网络采用阶梯式星形拓扑结构。一个USB网络中只能有一个主机。主机内设置了一个根集线器,提供了主机上的初始附属点。主机定时对集线器的状态进行查询。当一个新设备接入集线器时,主机会检测到集线器状态改变,主机发出一个命令使该端口有效并对其进行设置。位于这个端口上的设备进行响应,主机收到关于设备的信息,主机的操作系统确定对这...原创 2019-07-05 16:56:17 · 1107 阅读 · 0 评论 -
串口通信总结
UART:universal asynchronous receiver and transmitter通用异步收/发器USART:universal synchronous asynchronous receiver and transmitter通用同步/异步收/发器UART:通用异步收发器,全双工串行异步通信,由发送器,接收器,控制单元,波特率发生器等组成。 ...原创 2019-07-05 10:13:26 · 831 阅读 · 0 评论 -
SPI学习
SPI = Serial Peripheral Interface:串行外围设备接口SPI总线是串行外围设备接口,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线.SPI的通信原理很简单,它以主从方式工作,通常有一个主设备和一个或多个从设备,需要至少4根线。MISO – 主设备数据输出,从设备数据输入 MOSI – 主设备数据输入,从设备数据输...原创 2019-07-05 10:11:27 · 666 阅读 · 0 评论 -
I2C学习
串行半双工,每个IIC器件都有一个地址,i2C总线在IC之间进行双向数据传送,典型速度100Kbit/S,快速模式达400Kbit/S,后来增加了高速模式达3.4Mbit/S。它只有两根双向信号线。一根是数据线SDA(serial data I/O),另一根是时钟线SCL(serial clock)。1 数据位的有效性规定:SCL为高电平期间,数据线上的数据必须保持稳定,只有S...原创 2019-07-05 10:10:04 · 812 阅读 · 0 评论 -
函数调用栈空间以及fp寄存器
R13(SP):堆栈指针R14(LR):程序链接寄存器:存放子程序调用返回的地址,或者异常返回的地址R15(PC):程序计数器:指向当前指令的下两条指令的地址。CPSR:当前程序状态寄存器SPSR:备份程序状态寄存器Arm上函数调用的规则在ARM System Developer's Guide文档中的ATPCS部分有详细的定义,这里主要通过函数调用过程中函数栈的情况来说明fp...原创 2019-06-27 14:01:11 · 580 阅读 · 0 评论 -
CMake学习(1):概述
https://blog.csdn.net/fengzhongluoleidehua/article/details/79809756https://blog.csdn.net/qccz123456/article/details/80639817https://blog.csdn.net/whahu1989/article/details/82078563https://blog.c...原创 2019-06-05 10:08:42 · 125 阅读 · 0 评论 -
什么是ARM体系结构
工作状态和工作模式 寄存器组织 异常及其处理 存储格式和数据类型 MMU和MPU工作状态和工作模式工作状态:ARM,Thumb,Thumb-2工作模式:寄存器组织R0~R7:8个 R8~R12:两组(10个) R13~R14:两组(12个) PC:1个 CPSR:1个 SPSR:5个 总共:37个R13(SP):堆栈指针 R14(LR):程...原创 2019-05-18 10:22:41 · 868 阅读 · 0 评论 -
RS485通信与Modbus协议
在工业控制、电力通讯、智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换。最初采用的方式是 RS232 接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错误。除此之外,RS232 接口只能实现点对点通信,不具备联网功能,最大传输距离也只能达到十几米,不能满足远距离通信要求。而 RS485 则解决了这些问题,数据信号采用差分传输方式,可以有效的解决共模干...原创 2019-05-22 09:20:12 · 1067 阅读 · 0 评论 -
嵌入式工程师面对IIC和SPI时,该怎么选择?
IIC vs SPI现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了这两种标准通信协议。IIC ,一种只...原创 2019-04-24 16:02:19 · 498 阅读 · 0 评论 -
并发编程(原子性、可见性、一致性)
在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题。我们先看具体看一下这三个概念:1.原子性原子性:原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作...原创 2019-05-04 07:48:17 · 2048 阅读 · 0 评论