- 博客(52)
- 资源 (3)
- 收藏
- 关注

原创 NXP i.MX8系列平台开发讲解 - 总目录
NXP i.MX8系列平台开发讲解 主要针对嵌入式领域人员提供的一套开发教程,将开发过程的遇到的接触的内容进行一个笔记记录,包括Linux 驱动相关,Android 系统相关定制,部分音视频相关的使用,后续将会持续更新;
2024-02-24 17:07:29
1125
原创 一篇文章带你了解视频基础知识
本章节主要对视频相关基础知识和概念进行一个写叙述,视频的编解码,视频容器,渲染等概念,从目前视频的方向在嵌入式领域涉及到视频的编解码,视频传输,视频存储,视频渲染等一些技术,也是目前一些常见的相关技术。对于这每一个方向都有很多相关的知识,需要深入理解还需要很多时间精力去了解。
2024-12-31 22:55:05
1022
原创 NXP i.MX8系列平台开发讲解 - 5.5 调试篇 - 掌握perf 工具调试(二)
从上面这个例子查看,cvtsi2sdq指令:将整数转换为双精度浮点数。comisd指令:比较两个双精度浮点数。减少不必要的浮点数转换:检查算法是否可以优化,减少或避免浮点数的使用。并行化计算:如果可能,可以使用多线程或SIMD指令集来并行处理这些计算任务。在实际开发过程中,优化也需要去查看自身的代码涉及性能相关的问题,一般来说通过perf 工具可以轻松的找到相关的问题,另外还可以通过生成火焰图进行更加直观得找到问题的位置。
2024-12-31 22:45:03
760
原创 NXP i.MX8系列平台开发讲解 - 5.4 调试篇 - 掌握perf 工具调试(一)
Perf(Performance Analysis Tools for Linux)是一个功能强大且灵活的性能分析工具,主要用于 Linux 系统中的性能调优和分析。它能够帮助开发者深入了解系统和应用程序的性能瓶颈,并提供详细的分析报告。作为嵌入式软件工程师,掌握和使用 Perf 工具可以显著提升开发效率和产品性能。perf命令,用户空间的应用程序,Linux 内核中的一个子系统perf 命令。
2024-12-31 22:40:50
963
原创 NXP i.MX8系列平台开发讲解 - 5.3 调试篇(二) - 掌握Dynamic debug调试
Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】文章目录本章节继续上一篇文章分享关于调试的方法,这个是作为一个涉及Linux 内核驱动开发人员所必备的一个知识点。主要涉及软件内容,掌握该调试方法可以帮助你对调试和寻找问题有很大帮助,而不是单纯只会用这样的方式进行打印。
2024-12-31 22:25:46
978
原创 NXP i.MX8系列平台开发讲解 - 5.1 调试篇(一) - 掌握GDB:在Linux 下高效调试程序
GDB 是一款功能强大的命令行调试器,它可以帮助开发者跟踪程序的运行,排查代码中的问题。使用 GDB,开发者可以查看程序崩溃时的上下文信息,设定断点,逐步执行代码,检查变量的值,并通过回溯函数调用栈分析问题。本章节主要对GDB 相关的使用简单介绍,在实际开发过程中,大家应该都偏向于打印调试,或许在排错优化过程中才会接触到GDB这个工具,这个也是对于开发人员一个必备技能。对于已经接触过带图形界面的调试都比较熟悉,后续有机会对于Linux下一些调试相关进行分享。
2024-12-31 22:18:28
560
原创 工作中常用Vim的命令
本章节主要对Vim在工作中常用的命令进行整理,只需要掌握以上10个重要的,问题不大,再结合ctags 应该会更方面。如果不想使用Vim, 当然可以使用常用的代码编辑工具eclipse, vscode , Source insight 等工具,但有时候在服务器上这种无界面画或者又没有samba, nfs 这种服务,采用Vim 看看。
2024-12-31 21:56:52
804
原创 NXP i.MX8系列平台开发讲解 - 3.2.2 掌握性能分析工具Perf (二)
从上面这个例子查看,cvtsi2sdq指令:将整数转换为双精度浮点数。comisd指令:比较两个双精度浮点数。减少不必要的浮点数转换:检查算法是否可以优化,减少或避免浮点数的使用。并行化计算:如果可能,可以使用多线程或SIMD指令集来并行处理这些计算任务。在实际开发过程中,优化也需要去查看自身的代码涉及性能相关的问题,一般来说通过perf 工具可以轻松的找到相关的问题,另外还可以通过生成火焰图进行更加直观得找到问题的位置。
2024-10-25 18:30:00
494
原创 NXP i.MX8系列平台开发讲解 - 3.2.1 掌握性能分析工具Perf (一)
Perf(Performance Analysis Tools for Linux)是一个功能强大且灵活的性能分析工具,主要用于 Linux 系统中的性能调优和分析。它能够帮助开发者深入了解系统和应用程序的性能瓶颈,并提供详细的分析报告。作为嵌入式软件工程师,掌握和使用 Perf 工具可以显著提升开发效率和产品性能。perf命令,用户空间的应用程序,Linux 内核中的一个子系统perf 命令。
2024-10-25 18:00:00
1688
原创 NXP i.MX8系列平台开发讲解 - 4.2.3 摄像头篇(三) - 摄像头MIPI 接口
MIPI是Mobile Industry Processor Interface的缩写。MIPI联盟是一个开放的会员制组织。2003年7月,由美国德州仪器、意法半导体、英国ARM和芬兰诺基亚4家公司共同成立。MIPI联盟旨在推进手机应用处理器接口的标准化。MIPI联盟鼓励所有手机行业内的公司加入,包括:手机设备制造商、半导体厂商、软件厂商、系统供应商、外围设备制造商、知识产权提供商、其他公司。其中比较成熟的有MIPI CSI和MIPI DSI。CSI主要用于摄像头接口,而DSI则用于显示屏接口。
2024-10-06 15:58:34
1326
原创 NXP i.MX8系列平台开发讲解 - 4.2.2 摄像头篇(二) - 摄像头DVP接口
根据上一章节,对摄像头的接口有一个简单的概述,提到主要使用DVP 或者MIPI CSI ,当然还有另外一种使用的就是USB 接口的摄像头,但是对于USB 的摄像头的接口这里并不做具体的分析,后续有机会进行USB 的接口分析,本章节重点讲述DVP 相关。本章节主要对摄像头DVP接口进行了说明。DVP作为一种并行接口,常在STM32单片机中使用,通过简单的摄像头初始化、控制和数据读取,就可以轻松获取到视频图像。然而,对于一些较低端的单片机,可能还需要外接一个FIFO芯片来缓解数据传输的压力。
2024-09-25 18:25:52
1348
原创 NXP i.MX8系列平台开发讲解 - 4.2.1 摄像头篇(一) - 认识摄像头模组
Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【文章目录本章节开始分享摄像头模组相关知识,这也是作为嵌入式工程师可能会涉及的一个知识点,摄像头广泛在手机,安防,医疗,汽车各个领域都广泛使用。(Voice Coil Moto): 音圈马达(Camera Compact Module): 摄像头模组。
2024-09-25 18:14:54
1492
原创 NXP i.MX8系列平台开发讲解 - 4.1.5 GNSS篇(五) - GPSD 编译(包含交叉编译)详解
本章主要对GPSD 的交叉编译进行操作,中间涉及一些库的编译,期间可能出现的一些问题记录,有些在对于自动驾驶授时方面可能会用上这个gpsd 符合外加授时功能的程序进行时间的统一,有空后续操作并在视频号发布。Linux 使用 gpsd 获取 GPS 数据_linux gpsd-优快云博客。
2024-09-25 17:40:43
861
原创 认识meson 的使用
对于做过Linux 嵌入式的朋友都接触过Makefile, cmake 等这类, 但是对于meson可能接触不多,今天主要记录下关于meson 如何去编译,后续可能用上,首先需要知道的是Meson 是一个由 Python 实现的开源项目,绝妙的一句是:开发人员花费在构建调试上的每一秒都是浪费。Meson 是一个现代的构建系统,设计用于速度和简便性,适用于各种规模的项目。以下是使用 Meson 构建项目的基本步骤和一些重要的概念。
2024-09-06 17:37:52
1505
原创 NXP i.MX8系列平台开发讲解 - 4.1.4 GNSS 篇(四) - GPSD 使用
通过GPSD 获取设备的GNSS 信息来说难度不大,通过GPSD 已经将GNSS 数据包协议已经解析,支持多用户获取实时的相关数据,对于不想去深究其中可以采用添加GPSD 服务的方式进行处理GNSS 数据,但是对于嵌入式设备,还需要涉及一个交叉编译的过程,对于交叉编译将后续进行展开。
2024-09-03 18:00:00
1543
4
原创 NXP i.MX8系列平台开发讲解 - 4.1.3 GNSS 篇(三) - 定位模块与协议介绍
目前GNSS 定位模块使用范围广,主要包括物联网,测绘,无人机,机器人,汽车驾驶,手机平板等等行业。生产厂家从国外到国内越来越多,知名国外的SiRF, Ubolx, ST, Boadcom等等,国内SoC厂商也是最近几年疯狂崛起,以北斗为代表的和芯星通,司南卫星导航,华大北斗,中科微等厂家。本章节主要介绍了定位模块的一些参数特性,一些概念,包括选型相关,还有软件评估以及在后续软件调试用到的NMEA协议,难度不是很大,后续软件上去调试,应用到嵌入式系统中,记得关注+分享。往期推荐。
2024-08-23 08:56:17
847
原创 NXP i.MX8系列平台开发讲解 - 4.1.2 GNSS 篇(二) - 卫星导航定位原理
尽管所有潜在的错误类型都会降低 GNSS 定位的准确性,但还是有一些方法可以提高准确性。根据影响的因子,现实中很多都无法避免,只能去减弱它的影响或者修正。DGPS(差分全球定位系统)DGPS 来说比GPS 这种更加准确,它添加了能够纠正GPS信号中的错误,其实就是在已经精确测定坐标的参照物上设置GPS接收机,并和移动台上的GPS接收机同步观测不少于四颗的同一组卫星,求得差分数据进行校正。固定式 GPS 接收器检测到与您的 GPS 接收器相同的卫星信号,它就可以根据其精确测量的位置。
2024-08-17 16:14:25
878
原创 NXP i.MX8系列平台开发讲解 - 4.1.1 GNSS篇(一) - 定位基础知识
GNSS(Global Navigation Satellite System)是一个覆盖全球的卫星系统,用于确定地球上任何地点的精确位置。对于全球覆盖,估计一个星座需要 18 到 30 颗卫星。导航卫星向专门设计用于接收这些卫星信号并解码信号消息内容的无线电接收器提供轨道信息和准确的授时(和其他服务)。通过来自至少四颗“可见”卫星的消息内容,可以使用称为三边测量的数学过程来计算地球表面大部分位置或附近的位置。
2024-08-17 16:08:39
1123
原创 USB 接口小科普
USB 的发展,从当初的热插拔的优势,再到现在的传输速度上的大大提升,还包含关于充电速度的提升,都是在不停地进步,高版本的USB协议都是向下兼容。另外提到雷电技术,雷电3技术已经提供到USB-IF组织,让USB 有了更进一步的发展,在对于USB 线购买,需要什么的要求也有了一定的判断。
2024-07-30 20:45:00
1058
原创 NXP i.MX8系列平台开发讲解 - 3.19 Linux TTY子系统(二)
本文主要以串口驱动去介绍TTY 相关的知识,主要对串口驱动注册流程,一些重要操作函数进行简单分析,对于应用层来说是一个非常通用的用法,不过在遇到一些通信不上的时候,通过一些排查手法进行查看问题。
2024-07-17 18:45:18
834
原创 Linux 内核模块加载知多少
本章节大概讲述内核加载相关的基础知识,用法以及开头遗留下的问题应该都可以得到答案。对于内部内核加载后续再考虑讲解,一些链表相关内容。对于当前能掌握如何使用,如何去排查问题,在工作有一些帮助。在什么样情景该使用内核加载模块,哪些情景使用modprobe和insmod.一般来说对于紧急要启动的模块,会放在内核加载。大部分模块建议放在文件系统去加载,这样会大大减小内核的大小,对系统于升级也有一些帮助。哪些必须使用手动加载,对于在应用中存在不同功能或者角色转换相关时候,都是采用手动或脚本实现。
2024-07-16 17:34:18
1347
原创 NXP i.MX8系列平台开发讲解 - 3.18 Linux TTY子系统介绍(一)
Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】
2024-07-05 21:00:00
668
原创 NXP i.MX8系列平台开发讲解 - 3.17 Linux 之USB子系统(二)
根据本章节对于USB子系统的实现原理做了一些介绍,其实USB在驱动里面算是比较复杂驱动,若需要深究还有很多知识需要罗列,这里把重点提出,了解HOST,DEVICE端的重要部分。对于在开发过程中,若使用USB驱动修改不会很大,只会做一些很小的改动,做一些适配。
2024-06-21 19:30:00
841
原创 NXP i.MX8系列平台开发讲解 - 3.15 Linux 之USB子系统(一)
USBUniversal Serial Bus(通用串行总线)) 支持设备的即插即用和热插拔功能,作为一种传输传输接口。USB允许多种设备(例如计算机、打印机、存储设备、摄像头等)通过同一种接口进行连接,实现了设备之间的通用性和互操作性。USB支持高速数据传输,使文件传输、设备同步等任务更加高效。USB接口可以为许多设备提供电力,消除了部分设备的需外部电源的需求,如充电设备和小型外设。USB支持热插拔功能,用户可以在不关机的情况下插拔设备,方便了设备的切换和连接。
2024-06-21 18:00:00
1223
原创 如何模拟一个弱网环境
模拟弱网环境使用到的工具有很多,比如如ClumsytcFiddler等:在本章节中重点介绍Windos 平台和Linux (Android) 平台下的使用,工具都已经通过笔者自身测试,更加详细的用法将会在文末将工具使用命令手册附上。为什么会用到弱网环境?测试应用程序的鲁棒性;可以优化用户体验,在模拟不同的网络条件下,优化程序的用户体验;验证缓存和离线功能,在弱网或者无网络环境下,验证程序的缓存和离线功能;安全性测试:在弱网环境下,模拟中间人攻击、数据包丢失和重传等情况,测试应用程序的安全性。
2024-06-19 18:00:00
1850
原创 NXP i.MX8系列平台开发讲解 - 3.14 Linux 之Power Supply子系统(二)
根据前一章节讲解相关Power Supply子系统,本章节将以一个实际例子进行说明,重点说明充电芯片与电量计这两个部分。介绍之前先介绍一些相关的概念知识;充电模式充电模式 (Charging Mode)描述 (Description)适用情况 (Applicability)恒流充电 (Constant Current)充电电流保持恒定,电池以恒定速率充电适用于电池的初期充电,能够更快地达到一定电荷状态恒压充电 (Constant Voltage)充电电流逐渐减少,电压保持恒定以避免过充。
2024-06-05 19:30:00
1408
原创 NXP i.MX8系列平台开发讲解 - 3.14 Linux 之Power Supply子系统(一)
Linux Power Supply子系统是Linux内核中的一个重要部分,用于管理系统的电源供应管理和电池管理。其主要作用是监控和控制设备的能量消耗和供电状态,以确保系统的稳定运行和能效优化。该子系统涵盖了多个方面,包括电源供应、电池管理和电源管理等,对于嵌入式系统的性能和可靠性至关重要。电源供应管理:这部分涵盖了与系统电源供应相关的功能,包括识别和管理连接到系统的不同类型的电源设备,如AC适配器、USB供电、电池等。它负责监控电源设备的状态、能量消耗和供电能力,以确保系统的稳定运行。
2024-06-05 18:30:00
1104
原创 NXP i.MX8系列平台开发讲解 - 3.13 Linux 之Audio子系统(二)
上一章节,对于Linux Audio子系统有了大概的了解,对音频的基础知识,Audio 子系统的介绍,ALSA的框架库相关知识。本章节将讲解ALSA驱动的实现原理,在应用上一些开发相关。
2024-05-28 20:00:00
833
原创 NXP i.MX8系列平台开发讲解 - 3.12 Linux 之Audio子系统(一)
ALSA最初于2002年引入Linux内核,旨在提供更先进的音频支持,以替代旧的OSS(Open Sound System)音频系统。ALSA的引入解决了OSS存在的限制,并为Linux内核提供了更高质量和更灵活的音频功能。随着Linux内核的不断发展,ALSA得到了持续的改进和扩展。ALSA现在已经成为Linux内核的一部分,提供了广泛的音频功能和驱动程序支持。它支持多种音频硬件设备,包括声卡、USB音频接口、蓝牙音频等。
2024-05-22 18:25:06
1351
原创 软件设计师笔记(三)-设计模式和算法设计
本文内容来自笔者学习zst 留下的笔记,都是零碎的要点,查缺补漏,希望大家都能通过,记得加上免费的关注!
2024-05-13 13:40:29
576
原创 软件设计师笔记(一)-基础要点
本文内容来自笔者学习zst 留下的笔记,虽然有点乱,但是哥已经排版过一次,将就着看吧,查缺补漏,希望大家都能通过,记得加上免费的关注!谢谢!csdn贴图真的很废人!
2024-05-09 18:08:41
1092
1
原创 NXP i.MX8系列平台开发讲解 - 3.11 Linux PCIe设备调试(WIFI模块)
在我们认识WIFI模块,WIFI模块的接口主要有SDIO,USB,PCIe,采用PCIe接口对于其他这些接口来说,就是速度的优势,适用于需要更高性能和带宽的应用。如图AW-CM276MA-PUR模组采用的PCIe接口,采用M.2 2230接口;查看NXP官方提供的相关AW-CM276MA-PUR无线模块需要在i.MX 8M Quad主机系统上加载内核驱动程序,并在88W8987/88W8997 SoC上运行固件。
2024-05-07 19:30:00
1604
1
原创 NXP i.MX8系列平台开发讲解 - 1.1 导读前言
本专辑将会介绍Linux 驱动开发,Android BSP 驱动涉及HAL层调试,适用于嵌入式软件开发人员,和有兴趣向该方向发展的人员。首先具备一定基础知识:C语言数据结构操作系统电子电路基础版本控制和协作工具。
2024-05-07 14:52:50
474
1
原创 网络性能测试工具iperf3 和iperf
1. iperf工具介绍iperf是一个网络性能测试工具,用于测量网络带宽和性能。它可以在客户端和服务器之间进行数据传输,并提供了丰富的选项来配置测试参数和输出格式。iperf和iperf3都是用于测量网络带宽的工具,但它们有一些区别需要测试 TCP、UDP 或 SCTP 带宽,并且希望获得更好的性能和更多功能,建议使用iperf3。如果您只是需要基本的 TCP 和 UDP 带宽测试,并且对功能和性能没有太高的要求,那么iperf也是一个不错的选择。
2024-04-29 16:38:32
1292
原创 NXP i.MX8系列平台开发讲解 - 3.10 Linux PCIe资源分配与访问(二)
本文将重点讲解PCIe的资源访问相关内容,对于PCIe资源访问是从Host 端老看可以对PCIe进行配置与访问的资源主要包括以下相关类目配置空间BARCapabilityMSI/MSI-XDMA。
2024-04-26 17:44:10
1192
1
原创 NXP i.MX8系列平台开发讲解 - 3.9 Linux PCIe协议相关介绍(二)
事务层的数据包也就是距离用户最近的那一层,这一层的数据包称为TLP:Transaction Layer Packet;TLP事务层完成TLP的封包与解包TLP有点类似TCP/IP协议中的IP包,事务层通过TLP实现路由与寻址功能功能有硬件实现。
2024-04-25 19:04:57
1086
3
原创 NXP i.MX8系列平台开发讲解 - 3.8 Linux PCIe 简单介绍(一)
本文将开始介绍有关PCIE相关的知识,将会分成好几个章节进行从浅入深,加上实践相关进行去说说PCIE的相关知识,最终目的了解PCIE的整个流程,还有在我们遇到对PCIE设备的驱动该如何去调试,应该注意哪些问题。本章主要讲解认识下PCIE的相关发展历史,一些概念等等;
2024-04-25 19:01:23
893
原创 NXP i.MX8系列平台开发讲解 - 3.7 Linux 之GPIO子系统
GPIO子系统是对GPIO进行初始化设置,并且提供一些操作的接口,比如设置输入输出,读取GPIO的状态等等,但是在最这些操作之前都需要使用到pinctrl子系统对GPIO进行一系列的秒速设置PIN的复用还有电器属性,就比如对PIn设置为什么功能GPIO。这里就是设置了gpio1_io5 reset 低电平有效,在通过驱动将会使用起这个GPIO,从设备树来看都是采用定义GPIO所属的组,和它的offset号,有效电平是什么即可,再配合当前使用在某个驱动上,驱动会对该GPIO进行操作。
2024-03-13 22:00:00
1084
原创 Linux SD挂载失败 mount: /mnt/test: wrong fs type, bad option, bad superblock on /dev/sdd2
假如也不行,出现提醒更新e2fsck,
2024-03-06 19:45:00
2153
Android11.0最新Framework解析
2022-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人