自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Zephyr调试CAN-FD功能过程遇到问题总结

答:现象是下一报文的首帧会残留上一个报文的15字节,定位根因是缓冲区定义的是15字节,一帧是64字节,当从缓冲区取15字节时报溢出告警,此时接收方会停止接收,等告警结束再继续接收,如果此时缓冲区的残留15字节正好是首帧的15字节,那接收方从缓冲区取了这15字节,还会再取49字节,此时发送方发来真正的数据帧,结果接收方把发送方发来的数据当成了这剩余的49字节接上,出现错帧,解决办法是清空buff。答:原因是发送帧的BRS未置位,BRSE只是使能发送快速帧的能力,BRS才是快速帧的标记。问:接收流程组包过程。

2024-02-29 15:43:59 302 1

原创 Zephyr调用QSPI驱动关键API

这里主要总结下zephyr调用哪些api接口来调动qspi总线访问外接的flash设备,顺带介绍下qspi初始化注册流程。

2024-02-29 15:41:23 992 1

原创 Zephyr调用I2C接口相关流程及API

zephyr调用硬件的i2c驱动是通过调用HAL库形式,硬件参数设置更多的是在工程的配置文件中设置,比如dts、.conf、.overlay文件,这里主要是介绍下调试官方demo过程中涉及到的一些工程配置和关键api介绍。

2024-02-28 17:41:31 1321

原创 Zephyr级联场景下CAN总线通信性能测试

2024-02-28 17:37:17 82

原创 zephyr系统问题定位

最近使用zephyr系统移植cotex单板,调通驱动功能过程中遇到一些问题,其中I2C的信号量释放问题卡了许久,本文做一个总结,以便后续类似问题可以快速定位固化经验。

2024-02-28 17:31:11 627

原创 zephyr系统总体架构

超微内核具有内核的一系列基础特征,是一个高性能、多线程的执行环境。Zephyr是一种微型物联网实时操作系统,为所有资源受限设备,构建了针对低功耗、小型内存微处理器设备而进行优化的物联网嵌入式小型、可扩展的实时操作系统(RTOS),支持多种硬件架构及多种开发板。也可以在顶级目录中找到。├── CMakeLists.txt CMake 构建系统的顶层文件,包含构建 Zephyr 所需的大量逻辑。支持多线程服务,包括基于优先级的、非抢占式的fiber和基于优先级的、抢占式的task(提供可选的时间片)

2024-02-28 17:28:56 342

原创 zephyr移植支持类型soc适配

├── arch 包含和硬件体系结构相关的代码,每种平台占一个相应的目录├── boards 板级代码及相关的配置文件,例如stm32h743的就在目录zephyrproject/zephyr/boards/arm/nucleo_h743zi,我们适配自定义单板也主要是修改这个目录├── cmake 构建 Zephyr 需要额外的构建脚本├── doc 系统文档目录。

2024-02-28 17:22:55 680

原创 Zephyr的work queue机制以及相关API

/ 定义一个栈空间// 定义一个工作队列// 初始化工作队列并启动工作队列。

2024-02-28 17:19:15 259

原创 Zephyr的message queue机制以及API

Zephyr实现消息队列的功能,允许线程和ISR异步地接收和发送固定大小的消息数据项。如果有等待消息的线程存在,那么就会把消息数据项直接拷贝给这个线程,特别声明的是这里只做数据项的内容的拷贝复制,并没有把消息数据项的地址传递。另外有一种情况是如果ring buffer有空间,那么这个消息数据项会被拷贝到消息队列的ring buffer。还有一点就是,发送数据的大小都必须和一开始定义的消息队列的数据项大小一致。

2024-02-28 17:17:38 241

原创 zephyr使用jlink GDB调试程序及常用GDB命令

Zephyr是一种微型物联网实时操作系统,为所有资源受限设备,构建了针对低功耗、小型内存微处理器设备而进行优化的物联网嵌入式小型、可扩展的实时操作系统(RTOS),因此它也是我司想要关注利用的一款RTOS。Zephyr官方不仅提供了详细的开发指导,也提供了zephyr调试手段,下面具体介绍zephyr调试流程。

2024-02-28 17:13:44 331

原创 Zephyr上电启动到执行main函数流程梳理

最近做微型嵌入式系统zephyr移植开发工作,过程中遇到一些系统加载问题,于是研究了下zephyr从上电到执行到main函数的中间过程,这里做下梳理总结。

2024-02-28 17:04:25 602

原创 Zephyr CAN总协协议栈板间多帧通信接收方进程挂死问题定位

环境是两块stm32H743单板级联进行利用CAN协议栈进行通信,CAN的报文帧一次只能传输8字节,其中还有一部分是CAN帧头的部分,实际传输的用户数据还达不到8字节,所以当想传输的数据超过8字节时就需要进行多帧传输了,CAN的协议栈就是解决了这一问题,多帧通信的大致流程如图所示,目前我这边进行多帧通信时会出现接收方进程挂死,根据zephyr的报错信息显示是cpu0堆栈溢出,报错信息也放在下图。

2024-02-28 16:57:37 405

原创 Zephyr CAN协议栈开发涉及协议介绍

项目做的是单板系统的监控/控制分离功能,由管理板来收集上报各个线卡板的单板状态,两者之间用到的通讯就是利用CAN协议栈去进行消息交互。

2024-02-28 16:52:30 1207

原创 VScode插件下载--附代码高亮插件下载为例

有一些插件还是需要从外部下载,这里标记一下下载方法。

2024-02-28 16:21:38 273

原创 linux忘记root密码怎么操作

2、之后中断会要你输入新的密码并确认,此时这个输入的密码就是之后root的密码。1、命令行输入sudo passwd,然后输入当前账户的密码。

2024-02-28 16:16:19 352

原创 LINUX内核设备树--dts文件

设备树是用来描述设备硬件上信息,设备树文件dts被编译成dtb文件,dtb文件再传给内核,之后内核解析dtb,获得其中的设备信息,构造出一系列device_node结构体,这些结构体最后会转换为platform_device结构体被程序调用。也因为dts存在的缘故,所以我们不必要在c文件中特别定义设备信息,避免了一个单板程序就要定义一个c文件描述的问题,对于程序只需要调用platform_device结构体,在编译时候链接具体的设备dts文件,达到了程序和硬件解耦的目的。

2024-02-28 16:14:50 718

原创 KO内存开销分析

动态申请 :代码中动态申请的内存,由于申请方式不同,统计的方式也可能不同,例如:使用vmalloc和kmalloc申请内存,统计方式就不同;cat /proc/meminfo 查看vmallocUsed 项,cat /proc/vmallocinfo 中查看单个KO的内存占用。/proc/modules显示的size包括KO的init_size和core_size,少于实际静态占用,可通过以下节点查看分别大小。lsmod打印的KO列表中有个size属性,表示KO内存占用。

2024-02-28 16:12:23 237

空空如也

空空如也

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

TA关注的人

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