自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hywelstar的嵌入式软件开发笔记

专注于嵌入式软件开发,从事于Linux /Android BSP开发,涉及NXP,瑞芯微等Soc bring up

  • 博客(43)
  • 资源 (3)
  • 收藏
  • 关注

原创 NXP i.MX8系列平台开发讲解 - 总目录

NXP i.MX8系列平台开发讲解 主要针对嵌入式领域人员提供的一套开发教程,将开发过程的遇到的接触的内容进行一个笔记记录,包括Linux 驱动相关,Android 系统相关定制,部分音视频相关的使用,后续将会持续更新;

2024-02-24 17:07:29 768

原创 NXP i.MX8系列平台开发讲解 - 4.2.2 摄像头篇(二) - 摄像头DVP接口

根据上一章节,对摄像头的接口有一个简单的概述,提到主要使用DVP 或者MIPI CSI ,当然还有另外一种使用的就是USB 接口的摄像头,但是对于USB 的摄像头的接口这里并不做具体的分析,后续有机会进行USB 的接口分析,本章节重点讲述DVP 相关。本章节主要对摄像头DVP接口进行了说明。DVP作为一种并行接口,常在STM32单片机中使用,通过简单的摄像头初始化、控制和数据读取,就可以轻松获取到视频图像。然而,对于一些较低端的单片机,可能还需要外接一个FIFO芯片来缓解数据传输的压力。

2024-09-25 18:25:52 1007

原创 NXP i.MX8系列平台开发讲解 - 4.2.1 摄像头篇(一) - 认识摄像头模组

Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【文章目录本章节开始分享摄像头模组相关知识,这也是作为嵌入式工程师可能会涉及的一个知识点,摄像头广泛在手机,安防,医疗,汽车各个领域都广泛使用。(Voice Coil Moto): 音圈马达(Camera Compact Module): 摄像头模组。

2024-09-25 18:14:54 1200

原创 NXP i.MX8系列平台开发讲解 - 4.1.5 GNSS篇(五) - GPSD 编译(包含交叉编译)详解

本章主要对GPSD 的交叉编译进行操作,中间涉及一些库的编译,期间可能出现的一些问题记录,有些在对于自动驾驶授时方面可能会用上这个gpsd 符合外加授时功能的程序进行时间的统一,有空后续操作并在视频号发布。Linux 使用 gpsd 获取 GPS 数据_linux gpsd-CSDN博客。

2024-09-25 17:40:43 655

原创 认识meson 的使用

对于做过Linux 嵌入式的朋友都接触过Makefile, cmake 等这类, 但是对于meson可能接触不多,今天主要记录下关于meson 如何去编译,后续可能用上,首先需要知道的是Meson 是一个由 Python 实现的开源项目,绝妙的一句是:开发人员花费在构建调试上的每一秒都是浪费。Meson 是一个现代的构建系统,设计用于速度和简便性,适用于各种规模的项目。以下是使用 Meson 构建项目的基本步骤和一些重要的概念。

2024-09-06 17:37:52 800

原创 NXP i.MX8系列平台开发讲解 - 4.1.4 GNSS 篇(四) - GPSD 使用

通过GPSD 获取设备的GNSS 信息来说难度不大,通过GPSD 已经将GNSS 数据包协议已经解析,支持多用户获取实时的相关数据,对于不想去深究其中可以采用添加GPSD 服务的方式进行处理GNSS 数据,但是对于嵌入式设备,还需要涉及一个交叉编译的过程,对于交叉编译将后续进行展开。

2024-09-03 18:00:00 1288

原创 NXP i.MX8系列平台开发讲解 - 4.1.3 GNSS 篇(三) - 定位模块与协议介绍

目前GNSS 定位模块使用范围广,主要包括物联网,测绘,无人机,机器人,汽车驾驶,手机平板等等行业。生产厂家从国外到国内越来越多,知名国外的SiRF, Ubolx, ST, Boadcom等等,国内SoC厂商也是最近几年疯狂崛起,以北斗为代表的和芯星通,司南卫星导航,华大北斗,中科微等厂家。本章节主要介绍了定位模块的一些参数特性,一些概念,包括选型相关,还有软件评估以及在后续软件调试用到的NMEA协议,难度不是很大,后续软件上去调试,应用到嵌入式系统中,记得关注+分享。往期推荐。

2024-08-23 08:56:17 744

原创 NXP i.MX8系列平台开发讲解 - 4.1.2 GNSS 篇(二) - 卫星导航定位原理

尽管所有潜在的错误类型都会降低 GNSS 定位的准确性,但还是有一些方法可以提高准确性。根据影响的因子,现实中很多都无法避免,只能去减弱它的影响或者修正。DGPS(差分全球定位系统)DGPS 来说比GPS 这种更加准确,它添加了能够纠正GPS信号中的错误,其实就是在已经精确测定坐标的参照物上设置GPS接收机,并和移动台上的GPS接收机同步观测不少于四颗的同一组卫星,求得差分数据进行校正。固定式 GPS 接收器检测到与您的 GPS 接收器相同的卫星信号,它就可以根据其精确测量的位置。

2024-08-17 16:14:25 804

原创 NXP i.MX8系列平台开发讲解 - 4.1.1 GNSS篇(一) - 定位基础知识

GNSS(Global Navigation Satellite System)是一个覆盖全球的卫星系统,用于确定地球上任何地点的精确位置。对于全球覆盖,估计一个星座需要 18 到 30 颗卫星。导航卫星向专门设计用于接收这些卫星信号并解码信号消息内容的无线电接收器提供轨道信息和准确的授时(和其他服务)。通过来自至少四颗“可见”卫星的消息内容,可以使用称为三边测量的数学过程来计算地球表面大部分位置或附近的位置。

2024-08-17 16:08:39 1030

原创 USB 接口小科普

USB 的发展,从当初的热插拔的优势,再到现在的传输速度上的大大提升,还包含关于充电速度的提升,都是在不停地进步,高版本的USB协议都是向下兼容。另外提到雷电技术,雷电3技术已经提供到USB-IF组织,让USB 有了更进一步的发展,在对于USB 线购买,需要什么的要求也有了一定的判断。

2024-07-30 20:45:00 678

原创 NXP i.MX8系列平台开发讲解 - 3.19 Linux TTY子系统(二)

本文主要以串口驱动去介绍TTY 相关的知识,主要对串口驱动注册流程,一些重要操作函数进行简单分析,对于应用层来说是一个非常通用的用法,不过在遇到一些通信不上的时候,通过一些排查手法进行查看问题。

2024-07-17 18:45:18 586

原创 Linux 内核模块加载知多少

本章节大概讲述内核加载相关的基础知识,用法以及开头遗留下的问题应该都可以得到答案。对于内部内核加载后续再考虑讲解,一些链表相关内容。对于当前能掌握如何使用,如何去排查问题,在工作有一些帮助。在什么样情景该使用内核加载模块,哪些情景使用modprobe和insmod.一般来说对于紧急要启动的模块,会放在内核加载。大部分模块建议放在文件系统去加载,这样会大大减小内核的大小,对系统于升级也有一些帮助。哪些必须使用手动加载,对于在应用中存在不同功能或者角色转换相关时候,都是采用手动或脚本实现。

2024-07-16 17:34:18 1166

原创 NXP i.MX8系列平台开发讲解 - 3.18 Linux TTY子系统介绍(一)

Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】

2024-07-05 21:00:00 631

原创 NXP i.MX8系列平台开发讲解 - 3.17 Linux 之USB子系统(二)

根据本章节对于USB子系统的实现原理做了一些介绍,其实USB在驱动里面算是比较复杂驱动,若需要深究还有很多知识需要罗列,这里把重点提出,了解HOST,DEVICE端的重要部分。对于在开发过程中,若使用USB驱动修改不会很大,只会做一些很小的改动,做一些适配。

2024-06-21 19:30:00 768

原创 NXP i.MX8系列平台开发讲解 - 3.15 Linux 之USB子系统(一)

USBUniversal Serial Bus(通用串行总线)) 支持设备的即插即用和热插拔功能,作为一种传输传输接口。USB允许多种设备(例如计算机、打印机、存储设备、摄像头等)通过同一种接口进行连接,实现了设备之间的通用性和互操作性。USB支持高速数据传输,使文件传输、设备同步等任务更加高效。USB接口可以为许多设备提供电力,消除了部分设备的需外部电源的需求,如充电设备和小型外设。USB支持热插拔功能,用户可以在不关机的情况下插拔设备,方便了设备的切换和连接。

2024-06-21 18:00:00 1148

原创 如何模拟一个弱网环境

模拟弱网环境使用到的工具有很多,比如如ClumsytcFiddler等:在本章节中重点介绍Windos 平台和Linux (Android) 平台下的使用,工具都已经通过笔者自身测试,更加详细的用法将会在文末将工具使用命令手册附上。为什么会用到弱网环境?测试应用程序的鲁棒性;可以优化用户体验,在模拟不同的网络条件下,优化程序的用户体验;验证缓存和离线功能,在弱网或者无网络环境下,验证程序的缓存和离线功能;安全性测试:在弱网环境下,模拟中间人攻击、数据包丢失和重传等情况,测试应用程序的安全性。

2024-06-19 18:00:00 1241

原创 NXP i.MX8系列平台开发讲解 - 3.14 Linux 之Power Supply子系统(二)

根据前一章节讲解相关Power Supply子系统,本章节将以一个实际例子进行说明,重点说明充电芯片与电量计这两个部分。介绍之前先介绍一些相关的概念知识;充电模式充电模式 (Charging Mode)描述 (Description)适用情况 (Applicability)恒流充电 (Constant Current)充电电流保持恒定,电池以恒定速率充电适用于电池的初期充电,能够更快地达到一定电荷状态恒压充电 (Constant Voltage)充电电流逐渐减少,电压保持恒定以避免过充。

2024-06-05 19:30:00 1261

原创 NXP i.MX8系列平台开发讲解 - 3.14 Linux 之Power Supply子系统(一)

Linux Power Supply子系统是Linux内核中的一个重要部分,用于管理系统的电源供应管理和电池管理。其主要作用是监控和控制设备的能量消耗和供电状态,以确保系统的稳定运行和能效优化。该子系统涵盖了多个方面,包括电源供应、电池管理和电源管理等,对于嵌入式系统的性能和可靠性至关重要。电源供应管理:这部分涵盖了与系统电源供应相关的功能,包括识别和管理连接到系统的不同类型的电源设备,如AC适配器、USB供电、电池等。它负责监控电源设备的状态、能量消耗和供电能力,以确保系统的稳定运行。

2024-06-05 18:30:00 966

原创 NXP i.MX8系列平台开发讲解 - 3.13 Linux 之Audio子系统(二)

上一章节,对于Linux Audio子系统有了大概的了解,对音频的基础知识,Audio 子系统的介绍,ALSA的框架库相关知识。本章节将讲解ALSA驱动的实现原理,在应用上一些开发相关。

2024-05-28 20:00:00 747

原创 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 1263

原创 软件设计师笔记(三)-设计模式和算法设计

本文内容来自笔者学习zst 留下的笔记,都是零碎的要点,查缺补漏,希望大家都能通过,记得加上免费的关注!

2024-05-13 13:40:29 506

原创 软件设计师笔记(二)-零碎要点

本文内容来自笔者学习zst 留下的笔记,都是零碎的要点,查缺补漏,希望大家都能通过,记得加上免费的关注!

2024-05-10 12:01:21 539

原创 软件设计师笔记(一)-基础要点

本文内容来自笔者学习zst 留下的笔记,虽然有点乱,但是哥已经排版过一次,将就着看吧,查缺补漏,希望大家都能通过,记得加上免费的关注!谢谢!csdn贴图真的很废人!

2024-05-09 18:08:41 990 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 1175

原创 NXP i.MX8系列平台开发讲解 - 1.1 导读前言

本专辑将会介绍Linux 驱动开发,Android BSP 驱动涉及HAL层调试,适用于嵌入式软件开发人员,和有兴趣向该方向发展的人员。首先具备一定基础知识:C语言数据结构操作系统电子电路基础版本控制和协作工具。

2024-05-07 14:52:50 417 1

原创 网络性能测试工具iperf3 和iperf

1. iperf工具介绍iperf是一个网络性能测试工具,用于测量网络带宽和性能。它可以在客户端和服务器之间进行数据传输,并提供了丰富的选项来配置测试参数和输出格式。iperf和iperf3都是用于测量网络带宽的工具,但它们有一些区别需要测试 TCP、UDP 或 SCTP 带宽,并且希望获得更好的性能和更多功能,建议使用iperf3。如果您只是需要基本的 TCP 和 UDP 带宽测试,并且对功能和性能没有太高的要求,那么iperf也是一个不错的选择。

2024-04-29 16:38:32 777

原创 NXP i.MX8系列平台开发讲解 - 3.10 Linux PCIe资源分配与访问(二)

本文将重点讲解PCIe的资源访问相关内容,对于PCIe资源访问是从Host 端老看可以对PCIe进行配置与访问的资源主要包括以下相关类目配置空间BARCapabilityMSI/MSI-XDMA。

2024-04-26 17:44:10 1101 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 1029 3

原创 NXP i.MX8系列平台开发讲解 - 3.8 Linux PCIe 简单介绍(一)

本文将开始介绍有关PCIE相关的知识,将会分成好几个章节进行从浅入深,加上实践相关进行去说说PCIE的相关知识,最终目的了解PCIE的整个流程,还有在我们遇到对PCIE设备的驱动该如何去调试,应该注意哪些问题。本章主要讲解认识下PCIE的相关发展历史,一些概念等等;

2024-04-25 19:01:23 751

原创 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 997

原创 Linux SD挂载失败 mount: /mnt/test: wrong fs type, bad option, bad superblock on /dev/sdd2

假如也不行,出现提醒更新e2fsck,

2024-03-06 19:45:00 1725

原创 NXP i.MX8系列平台开发讲解 - 3.6 Linux 之Input 子系统(二)

本章节主要讲述关于Input子系统的应用,获取外部输入和模拟一个虚拟的input 设备,这些都使用Linux 系统,Android 系统也适用,Android同样进行交叉静态编译也可以运行。

2024-02-26 22:21:46 1906

原创 NXP i.MX8系列平台开发讲解 - 3.5 Linux 之Input子系统(一)

这三个是具有很大的联系,input_dev这个是用来描述一个input设备,input_handler用来表示事件的具体处理,input_handle用来关联input_dev与input_handler,有了input_handle可以更加灵活,可以动态地去关联他们的关系,比如一个触摸设备可以支持触摸事件处理程序、手势事件处理程序和笔迹事件处理程序等。inputX是对应的输入设备的对象目录,对应的设备的input_dev,包含了设备的想详细信息,产品名称,供应商等。

2024-02-26 21:30:00 1002

原创 NXP i.MX8系列平台开发讲解 - 3.4 Linux 之IIO子系统(sensor opt3001)

IIO子系统提供了统一的接口和框架,允许用户空间应用程序通过sysfs和设备文件来访问和配置这些传感器数据。:包含iio_ring/iio_core/iio_trigger等这些属于IIO Framwrok部分,iio_ring相当于连续采集的数据缓存buffer,iio_ring将提供字符设备文件的注册,所以在应用上可以通过字符设备读取该设备的数据;这几个函数文件都是围绕iio_dev/ iio_info/ 还有iio_buffer, iio_trigger的功能实现,具体的调用可以看到下图相关的关系。

2024-02-24 16:20:29 2162

原创 NXP i.MX8系列平台开发讲解 - 3.3 Linux 之Pinctrl子系统

Linux内核的Pinctrl子系统是一个非常见的框架系统,该子系统的目的是为了提供对硬件引脚(Pin)进行配置和控制的通用接口。通过 pinctrl 子系统,驱动程序可以请求和配置特定硬件引脚的功能和属性,从而实现对硬件引脚的灵活控制。

2024-02-23 21:00:00 893

原创 NXP i.MX8系列平台开发讲解 - 1.6 i.MX8M Linux源码编译问题(yocto)

从源码编译问题查看,主要问题可能存在三个。

2024-02-23 18:30:00 473

原创 NXP i.MX8系列平台开发讲解 - 1.5 i.MX8M Linux 源码编译(yocto)

fsl-image-machine-test FSL 社区的核心镜像,支持控制台环境,没有GUI 界面。fsl-image-gui 一个支持 GUI 但没有 Qt5 的镜像。fsl-image-gui 一个支持 GUI 但没有 Qt5 的镜像。core-image-base 目标设备硬件的只支持控制台的镜像。core-image-minimal 仅支持设备启动的小镜像。fsl-image-qt5 一个开源 Qt 5 的镜像。fsl-image-qt5 一个开源 Qt 5 的镜像。

2024-02-22 20:00:00 536

原创 NXP i.MX8系列平台开发讲解 - 1.4 i.MX8M 固件烧写

烧写镜像:Linux 和 Android 镜像烧写平台官方开发版名称: i.MX 8M QUAD EVK。

2024-02-22 19:00:00 715 1

原创 NXP i.MX8系列平台开发讲解 - 1.3 i.MX8M 官方介绍

i.MX 8M系列应用处理器基于Arm® Cortex®-A53和Cortex-M4内核,具有先进的音频、语音和视频 处理功能,适用于从消费类家用音频到工业楼宇自动化及移动计算机等广泛应用。• 支持高品质视频,提供全4K UltraHD分辨率和HDR (Dolby Vision、HDR10和HLG)• 提供高水平的专业音频保真度,具有20多个音频通道,每个通道384KHz• DSD512音频功能• 适用于无风扇运行,散热系统成本低,电池使用寿命较长• 灵活的存储器选项。

2024-02-20 14:05:49 660

原创 NXP i.MX8系列平台开发讲解 - 1.2 i.MX8M 开发准备工作

笔者使用:Linux version 5.4.0-150-generic (buildd@bos03-amd64-012) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023。虚拟机,如果不知道安装在真机上使用,如果Ubuntu 直接安装在真机上就不需要虚拟机了;支持SSH,FTP,串口,VNC,X server等功能;电脑PC(这个不用多说了)

2024-02-20 14:01:23 471

Android11.0最新Framework解析

Android11.0 系统分析 Android11.0 启动分析 Android11.0 最新Framework解析 Android11.0 Binder通信原理

2022-07-29

空空如也

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

TA关注的人

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