自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 python HEX 转String

import binasciidef hex2str(hexstr): bytestr = binascii.unhexlify(hexstr.replace(" ", "")) rststr = bytestr.decode('utf-8') return rststrhexstr="46 45 31 30 36 36 39 38 36 61 32 30 "rststr=hex2str(hexstr)

2025-04-23 14:33:48 285

原创 Bluetooth: ATT and GATT[准备翻译]

原文【

2025-04-23 13:13:56 763

原创 zephyr cdc-acm-uart

5、zephyr 的device tree里,status 如果没有,默认是okay。3、速率取决于usb速度和操作系统,可以达到1MBytes/s以上。2、直接挂在UDC下面,不需要上层驱动。1、这是usb 通信类的一个接口。

2025-03-12 09:25:00 108

原创 USB Device 的Interface描述

例如,一个复合设备可以有一个 Interface 用于键盘功能,另一个 Interface 用于鼠标功能。0x01, // bInterfaceSubClass: 接口子类代码(1:Boot Interface Subclass):每个 Interface 定义了设备与主机之间的通信方式,包括使用的端点、传输类型(控制、中断、批量、等时)等。描述设备的全局信息,如厂商 ID(VID)、产品 ID(PID)、设备类(bDeviceClass)等。

2025-03-05 15:23:41 740

原创 nRF52烧写固件后Jink连接不上的问题——readout protection

是Nordic处理器(如nRF52、nRF53系列)中的一种安全功能,用于防止未经授权的访问和读取芯片内部的Flash存储器内容。启用读保护后,调试接口(如SWD/JTAG)和某些存储器访问操作会被限制,从而保护固件的知识产权和安全性。调试接口和Flash存储器访问会被永久锁定,芯片只能运行已烧写的固件,无法再更新或调试。:在开发和调试阶段,建议禁用读保护,以便通过调试接口进行调试和固件更新。:启用读保护后,调试接口会被禁用,因此在开发阶段建议不要启用读保护。增强产品的安全性,防止逆向工程或固件盗用。

2025-03-05 11:51:52 925

原创 Getting Started with Zephyr

from。

2025-02-10 10:38:55 149

原创 zephyr usb HID Device overview

【代码】HID Device overview。

2025-02-08 17:38:59 201

原创 nrf52840的device tree继承

zephyr的DTS属于逐级覆盖结构,先arch(也就是arm)、再soc、在soc具体封装、再board、再application overlay的顺序。大部分内容都在soc定义好,在board和application里主要进行node properties的修改,包括一些外设的增加。

2025-02-08 15:25:44 537

原创 USB endpoints and their pipes

每个USB设备必须提供一个control endpoint,它得地址是0,被称为default endpoint 或者Endpoint0.这个Endpoint是双向得bidirectional,就是说,Host可以再一次tranfer内从它这里发送和接收数据。可以遍历所有的interfaces,然后遍历每一个interfaces 的settings,并且查看每一个endpoint的properties。一个Pipe与device上的一个endpoint通信,并且那个endpoint拥有一个地址。

2025-02-08 13:35:31 618

原创 cmake的基本概念

输出是build tree,就是建立一个build 目录树,把源代码文件、项目文件、编译连接指示文件等等组织成后续的编译工具能用的格式。1)、用括号包围的arguments,格式 [=[ ..... ]=], 不执行任何转义,变量引用;输入是source tree,当然这个source tree除了你的源代码,还要包含cmake的相关文件,不能直接包含一些特殊字符(比如空格、括号,#,“,\ ,必须用\ ecapse)2)、用双引号包围的arguments,被当作一个argument。

2025-02-07 10:17:28 438

原创 nRF connect SDK 的Application开发官方教程

Application Development

2025-02-06 17:33:51 136

原创 Zephyr Application Configuration Directory

在自定义board之后,如果configure app到这个自己的board上时,需要在configuration文件夹下建立一个与board名字一样的文件夹,并把所需要的configuration files放到这个文件夹下。在nRF Desktop下有这个文件夹,但是如果自定义了板子,那么需要在这个configuration文件夹下也建立这个board的配置文件夹。

2025-02-06 17:22:06 279

原创 zephyr devicetree

【代码】zephyr devicetree。

2025-02-04 20:48:10 1450

原创 各代DDR

DDR内存的规格

2025-02-04 15:36:00 124

原创 nRF Desktop Application

4)最重要的几个模块:hids.c(HID Service module)提供BLE的HID传输服务。2)从框图可以看出,zephyr提供了一些底层驱动,和蓝牙协议栈,NCS提供了Application Event Manager的应用事件管理器,以及HID service。3)基于不同的board(DTS、Overlay)、不同的配置xxx.conf,这个框架实现模块的裁剪和配置,从而实现不同的功能。1)HID Input report模式(这里input是相对主机而言的,也就是对电脑来说是输入)。

2025-02-02 11:33:33 431

原创 nRF Connect SDK 官方教程

nRF Connect SDK Fundamentals - Nordic Developer AcademynRF Connect SDK Intermediate - Nordic Developer Academy

2025-01-30 21:46:09 163

原创 JLINK vCOM & RTT

JLINK除了提供标准的SWD、JTAG接口外,还提供了两个与target device通信的接口,一个是虚拟串口vCOM,

2025-01-30 12:08:25 732

原创 UVC - USB 摄像头

UVC摄像头是Plug&Play的,不需要单独安装任何驱动,webcam则可能需要特殊的驱动。另外UVC摄像头通常特性更多、性能更好。支持的压缩格式:2012年之后的1.5版本的UVC标准才加入H.264的支持。USB有很多class,通信、语音、HID、UVC是视频类。

2025-01-17 19:02:45 1642

原创 nRF Desktop & Zephyr USB & HID

官方教程:HID state moduleis required for generating reports from input data. It is responsible for the following operations:Aggregating data from user input sources.Tracking state of the HID report subscriptions.Forming the HID reports in either report or boot

2025-01-16 19:00:27 1678

原创 固件升级OTA、DFU非常好的一篇文章

nRF Connect SDK(NCS)/Zephyr固件升级详解 – 重点讲述MCUboot和蓝牙空中升级

2025-01-15 09:59:03 195

原创 RTS & CTS in Nordic UART

It is also possible to use hardware flow control with UART using two extra lines called RTS (request to send) and CTS (clear to send).UART connection with hardware flow controlThese wires are cross-coupled between the two devices. If hardware flow control

2025-01-14 22:43:51 155

原创 nRF connect SDK 的 Application Event Manager

从NCS(nRF Conenct SDK)文档里看,提倡的也是这个架构,就是使用一个Application Event Manager来完成Event的转发,这与ROS、NuttX、QNX等系统的工作方式类似。Zyphyr是wind-river的项目发展过来的,并且声称是“微内核”的,微内核意味着各种app、kernel的服务、driver都尽量是解耦合,最好是以独立task或者thread方式运行的。APP_EVENT_INFO_DEFINE : 定义EVENT的Profiler信息,调试用的。

2025-01-13 14:43:44 236

原创 用nRF connect SDK创建application

在官方文档里,需要把创建的app放到ncs顶层目录,然后使用Mange SDKs里的Create New West Manifest来创建west.yml。有三种类型的application structure,主要区别是application和nRF connect SDK之间的位置关系不同。就是把application的项目代码放到SDK的顶层目录里,并定义west.yml来指定SDK的配置。或者说把SDK和Application当作一个整体项目,官方叫法是west Workspace。

2025-01-13 11:32:04 244

原创 1TOPS究竟是多大的算力

考虑加法和其它的,大约10MOPs=0.01TOP,所以1s钟可以做100次1024点DFT。40K点的实数乘法,同样考虑加法和其它的,大约100KOPs,所以1s钟可以做10000次1024点FFT。大约1000x9x100=1M的乘法,与1024点DFT类似。考虑加法、池化,logistic等函数,预计<30FPS。1024x768的图像,3x3的卷积核,101层。考虑数据搬移调度,还会再少一些。

2025-01-03 17:42:48 499

原创 c++ 的 return ( ) [ ] {expressions; } 表达式

【代码】c++ 的 [ ]( ) {expressions;} 表达式。

2025-01-02 17:46:26 156

原创 FreeCAD在线教程

一本很好的FreeCAD新手入门教程。

2024-12-30 09:36:22 395

原创 python的plotly绘图

frames——主要用于多帧动画,是由多个Frame构成的,每个Frame就是(data、layout,name)构成的。data—— 主要是图形数据(注意不是数据本身,而是绘图的数据,比如trace,box,surface等)2、plotly顶层,是plotly.express和plotly.graph_objs两大类接口。express用于快速绘图,基本一条命令可以完成绘图,缺点是可控制的元素少。4、plotly可以设置控制菜单、按钮等交互控制元素,也放在layout里。

2024-12-23 14:31:22 254

原创 nordic nRF connect SDK 安装

当然这期间,感觉git的设置还是有必要,除了前面文章提到的缓冲区、http version,还有一个git config --global core.compression 0。1、用nRF connect Desktop的toochain manager安装,是个GUI工具,但是一直失败,都是git相关的错误,尝试了各种git配置,都没有成功。2、用VS code 的插件安装,先安装toolchain,然后安装SDK,一样失败,错误不太一样,但是失败的更快。

2024-12-22 09:56:03 719

原创 将anaconda的python以及脚本设置为全局

将anaconda3以及相关的脚本和库增加到Path全局环境变量。

2024-12-22 09:44:39 146

原创 github的连接失败和断连

nordic的SDK需要用west管理多个github repo,但是总是失败。2、一个是curl HTTP/2 not closed cleanly。1、一个是 443 failed after xxx ms。即使github用的是https,http不配置也不行哦。

2024-12-20 22:55:14 413

原创 matplotlib画3D图

input(...)用来防止在VS Code运行结束,图形自动关闭。老版本的一些方法,显示不出来。

2024-12-19 16:32:18 103

原创 nordic vscode开发环境配置

2、VSCode里配置扩展:nRF connect for VS Code Extendsion Pack会把其它官方需要的VS Code工具(nRF Connect SDK for VS Code;1、安装之前需要,下载J-Link工具和驱动,以及nRF Command Line Tools,如下描述。3、安装nRF connect for Desktop 是包含在nRF connect SDK 里的,下载。双击安装,然后打开应用界面,安装Apps,主要是Toolchain Manager。

2024-12-18 16:48:35 353

原创 图像传感器image sensor的外部控制信号

Trigger:外部触发信号,启动曝光以及采集,细分为几种,比如trigger一次,连续采集多帧。edge触发,level触发等。XVS:垂直同步,也就是帧同步,既可以作为输入也可以作为输出。XHS:行同步,,既可以作为输入也可以作为输出。Master:多图像传感器联动时,控制主从。Strobe:曝光控制信号。

2024-12-17 16:26:59 415

原创 Numpy 的array broadcasting

1、broadcasting 描述了Numpy在进行算术运算时,如何处理不同shapes的arrays. 在一定的约束下,较小的array沿着较大的array 被broadcast,以便他们有兼容的shapes。broadcasting提供了一种在C语言而不是python层面looping的向量化array的方法。3、broadcasting的条件,Numpy从右往左依次比较每个shapes的每个dimensions,他们兼容的条件是:要么相等,要么有一个是1。条件不满足就会报错。

2024-12-16 21:55:53 409

原创 多维数组的存储方式,Row-Major or Column-Major

这两种存储方式,在维度转换reshape的时候尤其容易出错,比如从从一个从文件读出来的16个数据,reshape成2X8的矩阵,那么是怎么重新组装的,就必须注意这个,尤其在Matlab和Python 的Numpy默认就正相反。多维数组在内存中是一维存储的,分为Row-Major Order和Column-Major Order。

2024-12-16 18:08:41 261

原创 matlab转python,以及各种编程语言的互转

基于AI的基本可用了,推荐一个专门互转的网站,

2024-12-16 17:37:40 150

原创 Matlab的.*

matlab对于运算符的重载和扩展非常”强大“,但是也很容易出错。尤其在有些语言里会报错的,在matlab这里可能是一种”合理“的运算扩展。代表逐个元素相乘,但是这只是最基本的用法,只发生在矩阵AB的维度完全一致的情况下。列向量c(长度n),Kronecker积,或者张量积,生成一个mxn矩阵。行向量r,矩阵A的每一行与r 点乘。列向量c,矩阵A的每一列与c 点乘。4)行向量r(长度m)

2024-12-16 13:57:04 365

原创 高速相机的三大要素

1)大像素尺寸,提高灵敏度,在短的曝光时间获得清晰图像。2)数据传输能力增强,大帧率,大数据量。3)快门速度,提高曝光控制能力。

2024-12-13 10:59:01 319

空空如也

空空如也

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

TA关注的人

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