自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

转载 mtrace定位内存泄露

mtrace定位内存泄露

2022-11-20 12:31:32 145 1

转载 软中断 简介

在SMP(对称多处理器)系统中,中断下半部的“串行化”执行没有充分利用SMP的多CPU特性。因此,Linux Kernel 2.4扩展了softirq(软中断请求)的机制。

2022-11-20 10:30:22 835

原创 Linux - 网络lockup原因分析

Linux - 网络lockup原因分析

2022-10-03 09:21:59 1385 2

原创 Jetson - eMMC启动流程

Jetson - eMMC启动流程sdio扫描drivers/mmc/host/sdhci-tegra.cstatic int sdhci_tegra_probe(struct platform_device *pdev){ ... ... host = sdhci_pltfm_init(pdev, soc_data->pdata, sizeof(*tegra_host)); ... ...}drivers/mmc/

2022-10-03 09:21:24 382

原创 Linux - 网络路由

Linux - 网络路由原理流程图判断逻辑重置路由配置文件  由于公司产品可同时支持4G/5G、WiFi、GigE等多路网络接口。实际使用环境,通常固定1路接入外网,而其余接口接入内网或设置静态IP(4G/5G只能接入外网)。Linux路由优先级默认eth>wlan>usb,如果4G接入外网,同时wifi和eth的路由无法连接外网,系统请求外网连接时,可能将数据包发送到eth或wifi导致连接失败。  因此需要设计路由守护服务,定制与维护系统的路由表。原理  详见linux路由策略和路由

2021-12-07 23:46:31 344

原创 Linux - 拨号上网

Linux - 拨号上网基础知识AT指令流程图配置文件  Linux自带移动网络拨号软件:ModemManager。但是工作中遇到使用的4G模块不在ModemManager支持列表中,需要设计拨号服务取代ModemManager。  USB接口(4G-USB2.0;5G-USB3.0)的移动网络模块,可以通过dev/ttyUSB*(option和usb_wwan驱动创建)端口与系统进行AT指令通信。基础知识AT指令  模块的AT指令一般分公有接口和私有接口(华为MH5000为例):流程图配

2021-12-07 23:25:08 1520 2

原创 CAN - spi扩展can方案

spi扩展can方案CPURXTX异常MCUGPIOSPI指令MemoryRegisters配置寄存器中断状态寄存器错误诊断寄存器fifo控制和状态寄存器filter配置和控制寄存器FIFOsRAM结构消息对象  mcu扩展can的优点:mcu可编程,灵活控制扩展的can数量和功能mcu通信最少只需要1路spi和1路gpio,占用cpu硬件资源少  参照mcp2517fd芯片,设计spi扩展8路can方案:CPURX  注:待处理的RX FIFO地址(编号)必须是连续的。TX异常

2021-12-05 23:42:58 1612

原创 CAN总线 - 扫盲

can总线can是什么can的作用can的优点can总线拓扑can控制器can收发器物理层特性终端电阻can的特点多主控制消息发送通信速度远程数据请求错误故障封闭连接节点多速度快,距离远can总线错误主动错误状态被动错误状态总线关闭状态状态转换错误计数can协议模型标准规格ISO标准面向汽车的协议分类can帧协议帧(can2.0)数据帧远程帧错误帧过载帧帧间隔帧(can fd)仲裁位填充错误错误的种类错误帧输出位时序硬件同步再同步调整同步的规则can是什么  CAN是Controller Area Ne

2021-12-02 17:06:10 1879

原创 出厂测试方案设计

出厂测试方案设计整体方案设计思路环境搭建版本关联组装环节烧录环节版本更新自动测试测试项外部存储类SD卡(作为外部存储)SSD(作为外部存储)USB2.0/3.0(连接外部存储)数据通信类RS232/422/485(包含spi转uart)以太网4GWIFICAN多媒体相机声卡其他外设GPIOFANLEDHDMI按键Notice整体方案设计思路  设备从生产到出厂的过程分为4个环节:组装生产->烧录系统->版本更新->自动测试。如图所示:组装模块:外壳与各模块的SN码与工作时间录入

2021-11-29 01:38:54 959

原创 WK2204 - spi转uart调试记录

WK2204-spi转uart调试记录硬件芯片简介电路设计驱动添加设备树添加驱动调试查看启动加载检查串口通信数据乱码或丢失RS485只能收不能发系统中断响应异常思考硬件芯片简介  WK2204(DataSheet)是spi扩展uart的芯片,实现spi扩展4路uart,该芯片扩展的uart通道的具备以下功能特点:每个通道的波特率、字长、校验格式可以独立设置,最高可以提供2Mbps 的通信速率每个通道具有收/发独立的256 级FIFO,FIFO 中断可按用户需求进行编程触发方式且具备超时中断功能

2021-11-29 01:06:22 7752

原创 Linux音频调试示例

Linux音频调试示例硬件设计设备树在i2c节点添加设备使能i2s总线添加dai_link修改pinmux驱动code驱动platform驱动machine驱动激活音频流播放录音问题定位声卡未识别录音/播放失败检查codec寄存器值检查音频流的trace硬件设计cpucodecperipheral interfacenvidia-jetsonmax9867line-in×1, hp×1  codec与cpu之间通过i2c读写寄存器,i2s传输音频信号(i2s总线简介)。

2021-11-25 17:06:56 2497 4

转载 Linux - optee概述

https://www.jianshu.com/p/ba56e6a0d788

2021-11-25 11:46:23 482

原创 Linux内核栈调试

Linux内核栈调试dump_stack现象原因分析oops信息寄存器信息应用层信息调用栈关系objdump反汇编内核编译反汇编命令分析  Linux内核驱动调试经常遇到定位困难的问题,除了在代码之间添加log(printk/dev_info等)以外,还可以借助栈(stack)信息定位到代码。dump_stack现象原因  内核打印栈信息的常见原因有:oops崩溃:常见问题有空指针、内存访问越界等dump_stack函数:需要头文件linux/kprobes.h和asm/traps.h

2021-11-21 15:59:22 2116

原创 Linux内核锁

Linux内核锁spinlock单CPU系统多CPU系统semaphoremutex理解spinlock单CPU系统  include/linux/spinlock_api_up.h#define __LOCK(lock) \ do { preempt_disable(); ___LOCK(lock); } while (0) #define __UNLOCK(lock) \ do { preempt_enable(); ___UNLOCK(lock); } while (0)多CPU

2021-11-21 01:32:27 406

原创 Linux内核/设备树version

Linux内核/设备树version背景内核版本ContentsKernelMakefileShow设备树版本DTSKernelVersionShow背景  Linux内核版本可以在/proc/version中查看。  但是设备树默认没有版本信息,虽然可以通过demsg查到编译时间。  在工作中,希望:内核版本中添加产品型号、硬件版本、内核定制版本等信息。设备树与内核的版本绑定,通过/proc/dtb查看。内核版本Contents● product_version:产品型号● har

2021-11-21 00:55:46 1110

原创 Linux内核日志分级

Linux内核日志分级内核printk分级定义使用设置自定义printk分级定义接口使用设置内核printk分级定义  内核代码source/kernel_src/kernel/kernel-4.9/include/linux/kernel.h中,定义了控制台console的级别:#define CONSOLE_LOGLEVEL_SILENT 0 /* Mum's the word */#define CONSOLE_LOGLEVEL_MIN 1 /* Minimum loglevel

2021-11-20 23:44:25 333

原创 Linux音频子系统

Linux音频子系统硬件基础ALSA简介包含框架代码结构数据流向目录ALSA核心层作用字符设备ASoC框架硬件架构软件架构数据结构TODO硬件基础  传统音频电路包含麦克风、前置放大器、模数转换器ADC、数模转换器DAC、输出放大器、扬声器,如图所示:ALSA简介包含内核驱动  alsa-driver用户空间开发包 alsa-libs开发包插件  alsa-plugins设置管理工具包  alsa-utils声音处理小程序包 alsa-tools特殊音频固件支持包 alsa-firm

2021-11-17 22:28:41 847

原创 Systemd使用

systemd使用启动顺序依赖关系启动顺序  systemd-analyze plot > order.svg  浏览器打开svg文件,显示service启动顺序,如图所示:依赖关系  systemctl list-dependencies <service-name>.service  显示服务的全部依赖关系,如图所示:...

2021-11-17 16:44:31 76

原创 WiFi命令行连接

WiFi命令行连接wpa_spplicant设置查看无线网络生成配置文件连接WiFi获取IP参考wpa_spplicant  wpa_supplicant是开源项目源码,主要支持WEP,WPA/WPA2和WAPI无线协议和加密认证。因此,通过wpa_supplicant可以让系统连接到使用WPA的AP(Access Point)。但是wpa_supplicant不支持所有的驱动,并且只能连接到已经配置好SSID的无线网络。  关于wpa_supplicant的更多介绍,可以参考wpa_supplica

2021-11-17 15:34:43 2485

原创 Linux网络机制 - NAPI

背景  外部设备与中央处理器交互一般有两种手段:轮询和中断。  ● 中断看似很高效,但是却会遗漏一些数据,避免遗漏的机制要么由硬件实现要么由上层的软件实现。  ● 轮询没有中断高效,会做很多徒劳的操作,而且必须引入暂存机制,由于cpu不可能每次查询硬件的时候正好有事情可做,但轮询不会遗漏请求。  当外部设备活跃时,频繁的中断会导致大量的CPU开销,此时最好用轮询,但是外设活动很缓和的时候,轮询将会浪费CPU资源。机制  NAPI是中断和轮询的结合,数据量低时采用中断,数据量高时采用轮询。Cre

2021-11-17 12:18:51 145

WK2204_DataSheet.zip

WK2204_DataSheet.zip

2021-11-28

空空如也

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

TA关注的人

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