硬件
文章平均质量分 61
勤勉之
码字中.....。
展开
-
【蓝牙BLE】BLE模块FOTA升级方法
近日在蓝牙开发过程中,遇到了FOTA功能的实现,所以去了解了下蓝牙模块的OTA实现方式,下面做一下记录:1.概述FOTA即为 (firmware over the air) 即通过空中无线方式实现设备固件升级。可以通过无线通信方式实现OTA,比如2G/3G/4G/WiFi/蓝牙/NFC/Zigbee,他们都支持OTA。也可以通过有线方式进行固件升级,比如通过UART,USB或者SPI通信接口来升级设备固件。Ota就是远程固件升级即DFU(Device Firmware Update)。不管采用O转载 2021-07-13 11:22:53 · 1590 阅读 · 0 评论 -
【蓝牙开发】低功耗蓝牙ATT/GATT/Profile/Service/Characteristic规格解读
今天在蓝牙功能开发的过程中,学习到的一些知识,在此小记一下:什么是蓝牙service和characteristic?到底怎么理解蓝牙profile?ATT和GATT两者如何区分?什么又是attribute?attribute和characteristic的区别是什么?蓝牙的互联互通为什么能做得这么成功?本文将对以上问题进行阐述,并重点阐述蓝牙协议栈中的ATT层和GATT层,本文偏重理论,如果你对低功耗蓝牙不是很了解,建议配合如下两篇文章一起阅读:1. 蓝牙协议栈架构如文章“深入浅出低功耗蓝牙转载 2021-07-12 17:32:03 · 1314 阅读 · 0 评论 -
【嵌入式linux】bootloader详细介绍
Bootloader介绍:1、Bootloader是硬件启动的引导程序,是运行操作系统的前提。2、是操作系统内核或者用户应用程序运行之前运行的一小段代码,堆软硬件进行相应的初始化和设定,为最终运行操作系统准备好环境;3、嵌入式系统中,整个系统的启动加载任务通常由bootloader完成。4、主要是初始化硬件设置一些环境变量参数,比如加载系统的地址或者连接的主机ip等操作模式自启动模式:bootloader从目标机上的某个固态存储设备上将操作系统加载到ram中,整个过程...原创 2021-05-07 23:39:57 · 2373 阅读 · 1 评论 -
【嵌入式】嵌入式中的总线介绍
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。扩展资料数据总线原创 2021-05-07 23:38:12 · 1599 阅读 · 2 评论 -
【嵌入式智能硬件原理】WIFI作为sta连接原理和过程
1、首先选择sta或者ap,如果是ap模式,则此时wifi就是个热点,是供其他设备连接的。如果是sta模式,则此时wifi设备就可以连接其他的ap热点,比如手机连接路由器。此时手机就是sta2、作为sta连接过程中,需要先设置ssid即将要连接的热点的账号(SSID就是这个用于用户识别的的名字,也就是我们经常说到的wifi名。),然后设置加密模式。可选的有好多种,比如WEP安全加密方式和WPA安全加密方式。3、然后设置key即wifi的password。连接过程有三个阶段:终端在连接..原创 2021-05-06 17:47:42 · 2114 阅读 · 1 评论 -
【计算机网络】抓取路由器包
前置条件:1、镜像交换机:笔者使用的是tp-LINK的5口千兆镜像交换机 TP_5G20052、2个路由器 : A路由器正常的接收入户线插于wan口,B路由器关闭dhcp功能做交换机使用。3、3根网线: A和镜像交换机的lan口用网线连接。 B和镜像交换机的lan口用网线连接, PC接镜像交换机的镜像口。4、wireshark软件:用于抓包;这样就可以抓取 通过B的路由器的所有数据包了...原创 2021-02-23 17:22:55 · 5097 阅读 · 0 评论 -
【低功耗蓝牙BLE】连接事件和相关参数
低功耗蓝牙连接相关的知识1、连接事件在一个连接当中,主设备会在每个连接事件里向从设备发送数据包。一个连接事件是指主设备和从设备之间相互发送数据包的过程。连接事件的进行始终位于一个频率,每个数据包会在上个数据包发完之后等待150μs再发送。连接间隔决定了主设备与从设备的交互间隔;它是指两个连续的连接事件开始处的时间距离,可以是7.5ms ~ 4s内的任意值,但必须为1.25ms的整数倍。要确定从设备与主设备的实际交互间隔,需要用到从设备延迟这一参数,代表从设备在必须侦听之前可以忽略多少个连...转载 2021-01-27 17:08:58 · 1031 阅读 · 0 评论 -
【操作系统】嵌入式开发系统的中断
我的理解是,中断是这样的:(如果有错误,请帮忙指出,thanks)【本文仅作自己的记录,不作为分享】1、各个硬件模块注册到主程序的一个中断函数,该注册函数有个参数是中断处理程序。2、一旦硬件模块调用中断函数以后,中断处理程序会开始运行,传入相应的参数,完成一次中断响应。3、响应完成以后就退出该函数,也会返回到之前的系统运行状态。4、不过,在运行中断以前,响应的寄存器数据会被保存下来,以便中断完成以后可以很快恢复。...原创 2020-10-27 21:23:49 · 447 阅读 · 0 评论 -
【操作系统】中断和轮询的异同点
中断的基本概念程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预选安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为相应的服务程序去处理,这个过程称为程序中断。二、80x86微处理器的中断80x86微处理器的中断类型一般分为2类,即由于执行某些指令引起的软中断和由处理器以外其他控制电路发出中断请求信号引起的硬中断。CPU要从主程序转入中断服务程序,必须知道该中断服务程序的入口地址,即中断向量。80x86为CPU的PC机共有256个中断向量。中断的一般过程:..转载 2020-06-08 16:26:14 · 2161 阅读 · 0 评论 -
【蓝牙mesh】PB-GATT--provision过程中的一种广播传输载体
一个未provision的设备上电后,会发出一个不可连接的beacon广播,和一个可连接的beacon广播,带着自己的UUID信息,去寻找provisioner设备,当然,前提是该设备支持了PB ADV和PB GATT,通常设备都是强烈建议支持这两种bearer的此时,如果你的provisioner是一个手机,那么,完成设备的provision就要用到PB GATT,如果外部的provis...原创 2020-02-13 16:49:23 · 1656 阅读 · 0 评论 -
【蓝牙mesh】PB-ADV-procision过程中的一种provisioning bearers(配置广播载体)
provisioning bearer layer实现了在provision过程中provisioning PDUs的传输。mesh协议中定义了两种provisioning bearersPB_ADV PB_GATT(今日不做讲)未配网设备可以支持PB_ADV或是PB_GATT,建议在未配网设备同时实现两种bearer。provisioner至少支持一种,强烈建议provisioner支持...原创 2020-02-13 16:43:34 · 1375 阅读 · 0 评论 -
【蓝牙mesh】蓝牙Mesh的三种Model
蓝牙Mesh节点集成的Model可以分为三种类型:Server、Client和Control。Server Model:暴露自己的状态(states)给其他Model访问,比如一个灯,可以暴露开和关的状态给其他Model访问,这个灯就可以包含一个Server Model。所有Node默认需要两个Server Model:Configuration Server(0x0000)和Health S...转载 2020-02-11 20:17:04 · 1306 阅读 · 0 评论 -
【蓝牙mesh】蓝牙mesh中的两种设备角色
1、蓝牙mesh网络角色mesh网络中的设备被称为节点(Node),而非mesh网络中的设备称为未经启动配置的设备。将未经启动配置的设备转换为节点的过程称为启动配置。启动配置是一个安全的过程,原本未经启动配置的设备经过启动配置后会拥有一系列加密密钥,并被启动配置的设备识别。启动的设备可以是provisioner(配置角色),或者是provisionee(节点角色)。其中provisionee...转载 2020-02-11 19:59:30 · 1975 阅读 · 2 评论 -
【蓝牙mesh】蓝牙mesh开发简介
一个智能设备在未加入蓝牙Mesh网络之前称为Device,加入Mesh网络(Porvisioning过程)后,称为Node(节点)。每个Node可以包含多个Element(比如智能插排,每一个插孔都是一个Element),一个Element对应一个Unicast address(16bits,32767个地址,bit15=0);每个Element可以包含多个Model(用来发送、接收和处理Mess...转载 2020-02-10 16:37:09 · 1567 阅读 · 0 评论 -
【嵌入式智能硬件】:低功耗蓝牙GAP模式和规程
1、低功耗蓝牙的GAP(通用属性规范)有四个角色: 广播者(广播者),观察者(扫描者),外围设备(通常说的从设备),中央设备(通常说的主设备)2、模式和规程 低功耗蓝牙GAP具有以下几种模式(主要是从设备所处的状态) 1 广播模式 2 不可发现模式 3 有限可发现模式 4 一般可发现模式 5 不可连接模式 6 定向可连接模式 7 无向可连接模式...原创 2019-09-09 18:35:26 · 422 阅读 · 0 评论 -
【嵌入式智能硬件】:低功耗蓝牙三种发现模式
1、低功耗蓝牙的GAP(通用属性规范)有四个角色: 广播者(广播者),观察者(扫描者),外围设备(通常说的从设备),中央设备(通常说的主设备)2、三种发现模式: 不可发现模式。 有限可发现模式。‘ 一般可发现模式。 它们三个共同由一个AD信息标识设置,也就是2个bit位决定。不可发现模式: ...原创 2019-09-09 18:12:17 · 1202 阅读 · 0 评论 -
【蓝牙】蓝牙协议
gap协议(通用属性规范):定义了设备如何彼此发现、建立连接以及如何实现绑定,同同时描述了设备如何成为广播者和观察者,并且实现无需连接的数据传输。最后,它定义了如何用不同类型的地址来实现隐私性和可解析性。ATT协议(属性协议):定义了客户端与服务器如何相互发送符合标准的消息;GATT(通用属性协议):定义了如何发现和使用服务。特性和描述符的标准方法。...原创 2019-09-06 13:51:01 · 262 阅读 · 0 评论 -
ARM处理器的八种寻址方式
ARM处理器的八种寻址方式1、立即数寻址 MOV r0, #123 123->r0;2、寄存器寻址 MOV r1,r0 r0->r13、寄存器位移寻址: MOV r1,r2, lsl#2 r2*r4-->r14、寄存器间接寻址: ldr r0 ,=var 伪指令 ...原创 2018-07-23 16:26:56 · 3190 阅读 · 0 评论 -
NOR flash 和NAND flash区别深入分析
闪存芯片读写的基本单位不同 应用程序对NOR芯片操作以“字”为基本单位。为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块,有时候块内还分成扇区。读写时需要同时指定逻辑块号和块内偏移。应用程序对NAND芯片操作是以“块”为基本单位。NAND闪存的块比较小,一般是8KB,然后每块又分成页,页的大小一般是512字节。要修改NAND芯片中一个字节,必须重...转载 2018-07-19 11:39:06 · 525 阅读 · 0 评论 -
Linux操作系统与ARM工作模式
首先,ARM开发板在刚上电或复位后都会首先进入SVC即管理模式,此时、程序计数器R15-PC值会被赋为0x0000 0000;bootloader就是在此模式下,位于0x0000 0000的NOR FLASH或SRAM中装载的,因此、开机或重启后bootloader会被首先执行。 接着,bootloader引导Linux内核,此时、Linux内核一样运行在ARM的SVC即管理...转载 2018-07-19 15:29:34 · 681 阅读 · 2 评论 -
ARM开发板LED跑马灯
#define GPX2CON (*(volatile unsigned int *)0X11000C40) //BIT31---BIT28=== 1#define GPX2DAT (*(volatile unsigned int *)0X11000C44)//BIT7 ==== 1, 0//瀹忓畾涔? LED3#define LED3CON (*(volatile unsi...原创 2018-07-25 13:57:26 · 1018 阅读 · 0 评论 -
关于地址移位的解释
原创 2018-07-25 18:53:18 · 891 阅读 · 0 评论 -
C语言中#if 1 ,#if 0 的作用
这是预编译指令#if 后面的参数为真(非0)则执行#if 后面的模块#if 后面的参数为假,则不执行#if 后面的模块 此指令多用在 调试的时候,有段代码自己不想删除,怕后面用到所以用 #if 0 来暂时注释掉,如果想用的话就 用#if 1 来开启;例如: #if true执行#endif#if false跳过#endif...原创 2018-07-31 19:50:26 · 5933 阅读 · 0 评论 -
ARM中LDR伪指令与LDR加载指令
ARM指令集中,LDR通常都是作加载指令的,但是它也可以作伪指令。LDR伪指令的形式是“LDR Rn,=expr”。下面举一个例子来说明它的用法。COUNT EQU 0x40003100……LDR R1,=COUNTMOV R0,#0STR R0,[R1]COUNT是我们定义的一个变量,地址为0x40003100。这中定义方...转载 2018-07-31 20:00:37 · 310 阅读 · 0 评论 -
字符设备驱动 --静态/动态申请设备号
静态设备号申请: 申请设备号, from --- 要申请的设备号, count --- 申请几个设备, name --- 设备名字int register_chrdev_region(dev_t from, unsigned count, const char *name) 注销设备号, from --- 要注销的设备号, count--- 注销几个设备...原创 2018-08-07 19:39:48 · 976 阅读 · 0 评论 -
Linux 根文件系统的主要目录
/bin 可执行程序/dev 块/字符设备结点文件/etc 主要配置文件和初始化执行文件/lib 基本的库文件,如:C库 和内核模块/mnt 挂载点、临时挂在文件系统用/opt 附加的软件包/proc 虚拟文件系统,用于内核和进程通信/sbin ...原创 2018-08-03 11:26:02 · 963 阅读 · 0 评论 -
Uboot 移植步骤
Uboot 移植步骤:Vi Makefile 注意修改交叉编译工具链 Vi boards.cfg 查看uboot 已支持的板子, 哪款板子跟我们要移植的板子更接近 如果origen 板子跟 我们的板子接近, 参考origen 板子移植我们的uboot 拷贝origne 板子的所有文件到fs4412 ,Cp -rf board/samsung/origen ...原创 2018-08-03 15:19:21 · 3244 阅读 · 0 评论 -
Linux 内核移植步骤
Vi Makefile 修改arch, 修改cross_compile = arm-none-linux-gnueabi- 移植linux内核, 首先需要一个基本的配置(哪些模块有, 哪些功能有) 怎么得到基本配置 : arch/arm/configs 目录下有很多arm 处理器的默认配置 Make exynos_defconfig 等同于 ...原创 2018-08-03 15:20:42 · 1082 阅读 · 0 评论 -
C语言中的0U或1U是什么意思?
最近学STM32的芯片,官方例程中很多地方有0U/2U/4U...这类的表示,刚开始有些迷茫,细查之后得知,都是C放言默认的数据类型表示.在C语言中,数值常数默认为int型,当数值常量后边有U/UL/f等尾缀时,代表指定其数据类型. 0U 表示 无符号整型 0 1U 表示 无符号整型 1 如果不写U后缀,系...转载 2019-03-04 10:10:57 · 79182 阅读 · 2 评论 -
【嵌入式智能硬件】:wifi模块配网,连接家里的路由器
智能家居,物联网,互联网加一堆新的科技名词,下至草根,上至总理,都在谈论,我们已经可以看到下一个将猪吹起来的起风口,创业者在这个领域争先恐后。随之而来的是,智能家居的设备智能化,很多家电设备都安装上了 WiFi 模块, 方便用户通过手机控制和远程查看家里情况,典型的设备如智能插座,智能空调,智能净化器。转入正题,对于智能设备首次配置,这个过程简单来讲就是把 WiFi 设备初始化后,连到家里的无...转载 2019-08-07 14:12:28 · 2378 阅读 · 0 评论 -
【嵌入式智能硬件】BLE相关协议(GAP&GATT)
一、GAPGAP全名是Generic Access Profile,通用访问配置文件,它定义了蓝牙设备的角色,中心和外设,并且控制他们的连接和广播数据。广播数据有两种方式:广播数据和扫描回复数据,数据包大小最长为31字节,其中广播数据方式是必需的。广播数据就是蓝牙设备自己定时广播数据出来,让周围环境的其它设备可以扫描到它,知道它的存在,是外设主动完成的。而扫描回复数据是可选的,它会根据需要响...转载 2019-08-14 10:42:18 · 1159 阅读 · 0 评论 -
arm汇编指令
加法指令 ADD R1,R2,R3 R1= R2+R3;带进位加法 ADC R1,R2,R3 R1=R2+R3+C减法指令 SUB R1,R2,R3 R1 = R2-R3逆向减法 RSB R1,R2,R3 R1=R3-R2带借位减法 SBC R1...原创 2018-07-23 14:30:45 · 1155 阅读 · 0 评论