自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嵌入式技术在路上

嵌入式软硬件技术

  • 博客(328)
  • 资源 (5)
  • 收藏
  • 关注

原创 linux系统UDP丢包问题分析思路

(1)UDP 本身就是无连接不可靠的协议,适用于报文偶尔丢失也不影响程序状态的场景,比如视频、音频、游戏、监控等。对报文可靠性要求比较高的应用不要使用 UDP,推荐直接使用 TCP。当然,也可以在应用层做重试、去重保证可靠性(2)如果发现服务器丢包,首先通过监控查看系统负载是否过高,先想办法把负载降低再看丢包问题是否消失(3)如果系统负载过高,UDP 丢包是没有有效解决方案的。如果是应用异常导致 CPU、memory、IO 过高,请及时定位异常应用并修复;

2024-03-05 19:14:10 833

原创 Keil安装芯片PCAK包失败/软件卡死/无法解压的问题

一般我们直接双击Keil芯片包后就可以打开安装了,或者通过Keil-Pack Installer-Import界面进行导入安装,当这两种方法都失败后,则需要手动解压芯片包并将文件复制到对应目录下。

2024-01-27 11:44:49 871 1

原创 Android Studio下载gradle失败

1、打开Android Studio设置Gradle的地方,点击左上角的File->Settings查看gradle存放路径2、找到正在下载的gradle版本,Android Studio取消下载gradle,然后删掉后缀.part文件以及.lck文件3、将下载好的gradle文件放在.part相同目录下,重新打开或者同步项目就会自动解压开始编译Tip:gradle下载地址就是项目/gradle/wrapper/gradle-wrap.properties文件里:下载地址就是:https://ser

2023-12-25 20:25:24 2122

原创 UDS寻址:物理寻址和功能寻址

功能寻址一般是18DBFFxx。物理寻址一般18DAxxxx。过滤还可以设置严格一点。ID 29bit的 低16 bit是TA和SA。高bit是车厂定义的。0x7DF通常是功能寻址请求。还有另外一组物理寻址的请求和响应。

2023-11-20 10:24:51 334

原创 UDS诊断入门

首先,发送端要以一个FirstFrame开启通信,告诉接收端还有后续的内容要发,FirstFrame使用前两个字节作为PCI信息,第一个字节高4bit为0001,标识这是一个FirstFrame,低4bit加上第二个字节用于描述总共发送的数据长度是多少(包括在FirstFrame中和在ConsecutiveFrame中的所有字节数)。需要提一下的是,BS和STmin等于0时,表示接收端可以以最快的速度来接收数据,发送端可以一次发送的ConsecutiveFrame数量不受限制。

2023-11-20 09:15:26 160

原创 can的波特率/比特率

在实际的网络通信中由于存在传输的延时,不同节点的晶体的误差等因数,使得网络can的波特率的计算变得复杂起来。简单介绍一下波特率的计算,在can的底层协议里将can数据的每一位时间(TBit)分为许多的时间段(Tscl),这些时间段包括:位同步时间Tsync,时间段1Tseg1,时间段2Tseg2.总的来说,对于CAN的波特率计算问题,把握一个大的方向就行了,其计算公式可了规结为: BitRate = Fpclk/( (BRP+1) * ((Tseg1+1)+(Tseg2+1)+1)

2023-10-13 17:05:23 1188

原创 Error: Activity class {xxx.java} does not exist

Android Studio重启,然后重新build即可。然后点击:Invalidate Caches。首先clean 然后会删除build目录。

2023-09-30 22:43:13 217

原创 Jlink RTT工具打印日志

RTT( Real Time Terminal)是SEGGER公司新出的可以在嵌入式应用中与用户进行交互的实时终端。J-Link驱动4.90之后的版本都支持RTT。RTT既可以从MCU上输出信息、也可以向应用程序发送信息,由于其高速的特性,所以不影响MCU的实时性。实现原理: 固件代码将要输出的log数据按照RTT的格式写到确定地址的内存中去,然后RTT通过swd口读取对应内存地址的数据,并显示到PC终端上。

2023-08-14 09:08:02 480 1

原创 安装nvm,解决访问raw.githubusercontent.com出现refused拒绝连接错误

curl: (7) Failed to connect to raw.githubusercontent.com port 443: 拒绝连接。查询了一下发现是dns污染的问题,设置直连。###使用下面的dns或者其他的dns。另外一种就是使用一个安全的dns。###增加下面的解析。

2023-05-15 01:17:13 854 1

原创 S32 Designer编译程序遇到 “Build Project“ has encountered a problem. Errors occurred during the build

S32 Designer编译程序遇到 “Build Project” has encountered a problem. Errors occurred during the build.删除掉之前生成的文件,然后重新导入工程加载进来,重新编译即可,如果有git要在不同的电脑切换,可以在gitignore中删除对 S32K144_Debug和.settings文件的上传。

2022-12-19 07:57:29 1117 2

原创 S32K144 printf打印 undefined reference to `_write‘

S32K144使用printf的时候遇到如下问题,链接不到库。增加newlib,-specs=rdimon.specs。

2022-12-19 07:51:12 726

转载 锂电池充放电曲线,SOC曲线分析

另外上图有好几条放电曲线,主要是不同的放电倍率对应的放电曲线,放电倍率大,放电曲线低,放电倍率小,放电曲线高。另外上图有好几条放电曲线,主要是不同的放电倍率对应的放电曲线,放电倍率大,放电曲线低,放电倍率小,放电曲线高。磷酸铁锂电池的电压范围2.5V~3.65V,典型值为3.2V左右,磷酸铁锂电池的电压平台相对比较平;锂电池的放电曲线除了与放电倍率关系很大外,温度的关系很大,不同的温度放电曲线有一定差异。锂电池充放电曲线反应了电池本身的很多信息,通过放电曲线可以了解电池的很多性能情况。

2022-10-08 10:26:12 42514 3

转载 adb push 失败提示 ‘Read-only file system’

已经按照上面的步骤做了,还是提示‘Read-onlyfilesystem’怎么办。可以看到/system还是只读属性‘ro’,接下来我们把它remount成rw。tips先adbroot再adbremount否则会出现下面的情况。可能需要adbreboot注意看命令行中的提示。...

2022-07-30 15:20:21 813

原创 adb 解除 Permission denied

adb 遇到 Permission denied,需要把android模拟器root需要搜索文件可以使用 find命令

2022-07-07 09:13:43 2625

转载 CCC3.0 蓝牙OOB配对

随着科技不断发展,车钥匙经历了传统机械钥匙到高低频的电子钥匙再到目前的数字钥匙的转变,由于现在手机或者手环等成为人们生活中必不可少的随身携带的电子产品,于是人们开始寻思着用手机或手环来代替先前的车钥匙,而蓝牙作为数字车钥匙的一个重要部件,本文将介绍CCC3.0中关于蓝牙OOB配对的那部分内容,至于蓝牙模块之间的配对特性交换,认证以及密钥生成分发则不在讨论的范围内。配对双方都显示一个6位的数字,由用户来核对数字是否一致,如果是一致的就允许配对,比如手机之前的配对。用于配对没有显示没有输入的设备,主动发起连接即

2022-06-29 22:29:04 2031 1

原创 蓝牙协议层 GATT ,GAP,ATT 之间的关系

ATT是由一群ATT命令组成,就是上文所述的request(请求)和response(响应)命令,ATT也是蓝牙空口包中的最上层,也就是说,ATT就是大家对蓝牙数据包进行分析的最多的地方。ATT命令,正式称谓ATT PDU(Protocol Data Unit,协议数据交互单元)包括4类:读,写,notify(通知)和indicate(指示)。这些命令又可以分成两种:如果它需要response,那么会在相应命令后面加上request;相反,如果它只需要ACK而不需要response,那么它的后面就不会带re

2022-06-23 23:50:20 2474 1

原创 功率放大器P1dB、P3dB和PSat指标释义

(1)P1dBP1dB,即1分贝压缩输出功率,是指相对于放大器的小信号增益,放大器增益减小1dB时的输出功率。放大器有一个线性动态范围,在这个范围内,放大器的输出功率随输入功率线性增加。随着输入功率的继续增加,放大器进入非线性区,其输出功率不再随输入功率的增加而线性增加,也就是说,其输出功率低于小信号增益所预计的值。通常把增益下降到比线性增益低1dB时的输出功率值定义为输出功率的1dB压缩点,用P1dB表示。(2)P3dBP3dB,即3分贝压缩输出功率,是指相对于放大器的小信号增益,放大器增益减小3dB

2022-06-10 10:32:59 12429

原创 VMware自适应Ubuntu的屏幕大小同时支持复制粘贴

sudo su 切换root身份,不携带当前用户环境变量。sudo apt-get update这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。update后,可能需要upgrade一下。安装工具(1)sudo apt-get autoremove open-vm-tools(2)sudo apt-get install open-vm-tools(3)sudo apt-get i..

2022-05-28 22:23:31 239

原创 git冲突出现的原因及解决方案

Git冲突情况举例:简单来说就是本地修改的文件和目标远程库的同一个文件都有修改。这时无论是pull/push/merge时都会产生冲突。1、不同分支下的merge比如在不同分支下进行分支合并时,我们在本地修改了a文件并把a文件的修改push到了test分支下,接着我们切换到master分支下将test分支上的修改合并到当前master分支下时,如果master分支下的a文件也有修改的话,这时在进行merge也会产生冲突。(因为这个两个分支是不同步的,两个分支下的同一个文件都有修改)2、同一个分支下的

2022-04-10 21:17:32 8580 2

原创 UWB无线信号波形

UWB使用一种新的波形或信号称为脉冲无线电,来获得如此巨大的带宽,如下图所示的脉冲无线电信号:

2022-03-14 00:20:45 1017

原创 IEEE 802.15.4(a,f,z)超宽带信道的标准化

IEEE 802.15.4(a,f,z)超宽带信道的标准化

2022-03-13 23:53:47 1171

原创 基于IEEE 802.15.4z的UWB信道分配

基于IEEE 802.15.4z的UWB信道分配:

2022-03-13 23:49:09 1129 1

原创 菲涅尔区计算方法

菲涅尔区计算链接https://lunaw.cn/wifical/?from=groupmessage

2021-12-21 16:00:23 1654

转载 解决Win10笔记本电脑Wifi频繁断线的问题

Win10无线总是掉线怎么回事?经常有网友抱怨,电脑升级Win10之后,无线网络经常容易掉线或者不稳定的情况。有时候即便是勾选了自动连接Wifi,断线后也不会自动连接。 Win10笔记本Wifi总是断线解决办法: 一般来说,导致Win10无线总是掉线或者Wifi总是断线而不会自动连接,主要可能是网络没有播报或开启了无线网卡节电模式导致,只要设置2个地方即可解决。1、打开“设备管理器”,右键桌面左下角开始菜单,选择“设备管理器”,然后找到无线网卡设备,在其上点击鼠标右键,然后打开「属性」,如图。

2021-09-21 21:19:41 17911 2

原创 Segger SES软件配置CMSIS Configuration wizard的操作步骤(Nordic)

1,安装Segger SES 确保已经安装正常2,安装java环境(1) 下载地址https://java.com/en/download/manual.jsp 选择(2) 配置jre环境 (a) 在系统变量中新建环境变量JAVA_HOME,配置值为Java的JDK安装目录,本文作者安装的的路径为C:\Program Files\Java\jre1.8.0_251 (b) 新建CLASSPATH系统环境变量,设置值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.j

2021-09-16 23:47:50 939

原创 STM32内存结构介绍,FreeRTOS内存分配技巧,Stack_Size和Heap_Size大小设置

STM32内存结构介绍和FreeRTOS内存分配技巧这是我第一次使用FreeRTOS构建STM32的项目,踩了好些坑,又发现了我缺乏对于操作系统的内存及其空间的分配的知识,故写下文档记录学习成果。文章最后要解决的问题是,如何恰当地分配FreeRTOS中的堆、任务栈的空间。但是在概念的理解上,也需要知道STM32内存的相关知识。所以首先大致介绍一下STM32的内存结构。STM32内存结构STM32的数据在物理上分别储存在RAM和Flash中。RAM可读可写,掉电清零。Flash可读可写,但是读写时间很

2021-09-13 09:25:27 15420 6

转载 .wav文件详解,PCM数据格式,.wav生成C语言数组

.WAV文件,PCM数据音频简介经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声);22050HZ 8bit mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道;当然也可以有 16bit 的单声道或 8bit 的立体声, 等等。采样率是指:声音信号在“模→数”转换过程中

2021-08-25 17:50:18 2296

原创 Cortex-M3 内核HardFault错误调试定位方法

首先更改startup.s的启动文件把里面的HardFault_Handler代码段换成下面的代码:HardFault_Handler\ PROC IMPORT hard_fault_handler_c ;函数申明 TST LR, #4 ;根据LR.2判断使用的什么堆栈 ITE EQ MRSEQ R0, MSP ;使用MSP堆栈 MRSNE R0, PSP ;使用PSP堆栈 B hard_fault_handle

2021-08-14 18:16:20 438

转载 随机数在密码学中生成Salt的用法

在密码学中,Salt是指将特定(固定)字符串插入到明文固定位置,让Hash散列运算值不同于使用原始明文的散列值。HASH散列运算是公开算法,只要有相同的明文,任何人都能算出相同的摘要值。Salt的意义在于让只有掌握正确Salt数据的用户才能计算出正确的HASH散列值。在某种意义上,Salt对于HASH运算的意义,就相当于密钥对于3DES等对称算法的意义。下面举例介绍随机数结合Salt的用法。越来越多的嵌入式设备面临远程升级固件的安全问题,主要分为两方面:问题1:如何实现固件防篡改问题2:如何防止窃取固

2021-08-06 11:49:44 979

转载 随机数在密码学中生成Nonce的用法

Nonce是Number once的缩写,顾名思义在密码学中将只能被使用一次的随机数称为Nonce。即该随机数一旦被应用过就失效了,无法再次使用。不论是伪随机数还是真随机数均可生成Nonce,其主要作用是防止重放攻击。在认证协议或者数据加密传输体系中,Nonce会作为种子数据、种子向量,参与到身份识别或数据有效性判别之中。在基于对称算法实现的身份认证体系中,系统A作为认证发起方生成Nonce后,将其发送给未知身份的系统B,后者使用认证密钥对Nonce加密后将密文C返回给系统A。最终,系统A使用同样的认证密

2021-08-06 11:46:34 3280

转载 CMAC--基于分组密码的消息认证码的实现及其应用

前言CMAC(基于分组加密的消息认证码),一般用作消息的签名。与HMAC相同的是都需要一把秘钥来加密内容得到MAC,只是MAC的产生方法不同,一个是用hash算法,一个是用分组加密算法。两种方法具体原理参见:https://blog.csdn.net/kkxgx/article/details/10307663实际上,CMAC-128的计算结果是128位的,而AES的密钥也是128位的,所以利用这个特性,我们可以将一个AES密钥经过CMAC生产出多个输出,这些输出可以用来做不同用途的密钥,所以,当我们

2021-08-06 10:23:35 1357

转载 FreeRTOS堆分配大小对任务数的影响

FreeRTOS堆分配(内存)如果不够大,可能引起FreeRTOS运行异常。对于STM32芯片, 如果使用STM32CubeMX配置FreeRTOS,创建4个任务时,会引起FreeRTOS运行异常,原因是cube默认是使用heap_4.c文件来动态分配内存,并将堆大小设置为3072,见FreeRTOSConfig.c文件中的定义:#define configTOTAL_HEAP_SIZE ((size_t)3072)这个堆大小可以满足创建3个任务,但如果创建4个任务,程序将运行异常。经过断点调试,可

2021-07-21 15:20:54 2283

转载 nRF52840 dongle BLE sniffer

BLE 抓包, 尝试使用nRF52840 dongle sniffer最终结果,nRF52840 dongle硬件不支持蓝牙抓包https://devzone.nordicsemi.com/f/nordic-q-a/40331/nrf52840-dongle-snifferhttps://www.novelbits.io/nrf52840-usb-dongle-tutorial-1/更换硬件nRF52840 DK,抓包成功https://www.nordicsemi.com/Software-an

2021-06-23 23:44:07 736

原创 git强制push

git强制push不知道做了什么非人的改动,今天push Github的时候,出现了一句错误提示:error: failed to push some refs to 'https://github.com/......'hint: Updates were rejected because the tip of your current branch is behindhint: its remote counterpart. Integrate the remote changes (e.g.

2021-06-21 10:39:11 7320

原创 Openwrt中MT7628/MT7688的全部GPIO复用配置及常用接口

Openwrt的不同版本中关于MT7628,MT7688的GPIO配置,存在或多或少的一些小问题下面将以MT7628AN为基础,介绍其全部的GPIO功能复用配置,以及需要注意的地方MT76x8一个就47个可作为GPIO引脚,如下:

2021-05-14 22:23:39 597

原创 Visual Studio Enterprise 2015简体中文版(企业版)秘钥

Visual Studio Enterprise 2015简体中文版(企业版)KEY:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

2021-04-27 19:55:27 6179

原创 openwrt UCI 网络配置和Luci在线安装(命令行)

1. 配置有线设置lan ip(即访问路由的ip地址)uci set network.lan.ipaddr= 192.168.1.1家用拨号宽带uci set network.wan.proto=pppoe //设置wan口类型为pppoeuci set network.wan.username=[上网帐户]uci set network.wan.password=[上网密码] //这两行设置就是宽带账号静态IP uci set network.wan.proto=sta

2021-04-16 10:49:10 3286

转载 Python Conda 软件包升级

conda:以管理员身份启动Anaconda Prompt:升级conda(升级Anaconda前需要先升级conda):conda update conda升级anaconda:conda update anaconda升级spyder:conda update spyder更新所有包:conda update --all安装包:conda install package更新包:conda update package查询某个conda指令使用-h后缀,如conda update -hp

2021-04-08 19:24:44 2571

转载 keil5在原有工程上修改工程名

keil建立工程,需要添加启动文件,需要修改魔术棒设置,需要添减文件和文件路径等等…,不难,倒是很麻烦;如果有现成的工程(往往都会有现成的工程),只需要稍微修改工程信息,借助这个基础工程会节省很大的开发周期;故,说明下如何简单快速的修改工程;简单3个步骤 很实用!!!1.在工程文件目录中,将old.uvoptx和old.uvprojx名字改成new.uvoptx和new.uvprojx。并其他 .uvoptx文件统统删除。如:2.双击打开new.uvproj,点击,在弹出的界面上,双击“Progec

2021-03-22 19:43:08 1436

原创 OPENWRT修改网卡MAC地址

问题:多台openwrt设备在同一网络中使用产生MAC冲突1.修改 lan,wan mac地址编辑 /etc/config/network修改其中一段config 'interface' 'lan' option 'type' 'bridge' option 'ifname' 'eth0.0' option 'proto' 'static' option 'netmask' '255.255.255.0' option

2021-03-18 19:07:16 13068 1

RF计算器ART RF

ART RF衰减器等阻抗计算工具,射频方面很好的工具,有助于开发,非常简单实用,有助于开发,非常简单实用,有助于开发,非常简单实用

2020-10-13

宋宝华_Linux设备驱动开发详解_第2版 源代码_低分提供出来

宋宝华_Linux设备驱动开发详解_第2版 源代码_低分提供出来,

2018-08-31

aps013_dw1000_and_two_way_ranging.pdf

uwb测距中常用的TWR方式,two way ranging

2016-04-15

Segger_Keil6.0

替换Keil4.72版本以上的Segger文件,就可以去掉烦人的固件更新程序 替换目录如下: Keil安装路径\ARM\

2015-06-09

IAR for ARM 7.2破解文件

使用TI的CC3200需要使用IAR for ARM 7.10.3以上的版本,找了好久,终于找到可以破解的了。 首先从官网下载安装包:http://www.iar.com/Service-Center/Downloads/ 点击编译大小限制的版本下载,这样容易检测是否破解成功! 下载,安装成功后 可以打开EWARM,编译一个工程,是不能够编译的(假如生成的文件大于32K的话)。 然后,关闭EWARM。 下载本注册机 1.防毒软件关掉,否则,补丁会被当病毒隔离或者删除。 2.解压,然后将注册机放到安装目录的IAR Systems\Embedded Workbench 7.0(根据版本不同而不同)目录下。 运行注册机。如果是在Windows 7下安装,以管理员身份运行破解软件 。 4.点击patch按钮 5.显示框中出现一下信息证明破解成功。 File patched! OK ---PATCHING DONE--- 6.破解完成了。

2014-08-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除