自定义博客皮肤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

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

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

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

2024-02-24 17:07:29 520

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

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

2024-06-21 19:30:00 677

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

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

2024-06-21 18:00:00 1077

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

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

2024-06-19 18:00:00 672

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

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

2024-06-05 19:30:00 1149

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

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

2024-06-05 18:30:00 849

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

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

2024-05-28 20:00:00 685

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

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

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

2024-05-13 13:40:29 480

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

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

2024-05-10 12:01:21 496

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

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

2024-05-09 18:08:41 908 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 857

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

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

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

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

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

2024-04-29 16:38:32 443

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

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

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

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

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

2024-04-25 19:01:23 632

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

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

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

2024-03-06 19:45:00 1356

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

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

2024-02-26 22:21:46 1857

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

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

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

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

2024-02-23 21:00:00 837

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

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

2024-02-23 18:30:00 410

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

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

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

2024-02-22 19:00:00 568

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

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

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

根据上一章节讲解LED子系统的使用相关步骤,这里说一说LED子系统的一些核心源代码文件,是如何实现LED子系统。这里重点关注内核部分的实现:LED设备的注册和注销实现都在该函数,这里看看里面的重要结构体从结构里面可以看到已经定义了LED设备的属性和操作函数,包括设备的名称,LED的亮度,max 等,设置与获取亮度函数;重要字段:name:设备名称,用于在/sys/class/leds/目录下创建设备子目录。brightness:表示LED设备的亮度,可以通过读写。

2024-02-19 18:04:42 1891

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

Linux内核的LED子系统是一种重要的框架,用于管理和控制设备上的LED指示灯。在嵌入式系统和物联网设备中,LED子系统发挥着关键作用,为开发者提供了一种统一的方式来控制和定制LED的行为和效果。这些API可以在应用程序中调用,以实现对LED的控制和操作。内核空间:内核配置LED相关的GPIO,初始化,提供各种控制LED的接口,并且在Linux 系统需要通过设备节点形式呈现,可通过读写设备节点去控制。可以控制LED的亮灭,闪烁模式,可以灵活改变相关触发方式;修改触发方式,改为时间,可以实现使得灯亮多久。

2023-08-16 17:13:11 452

原创 NXP i.MX8系列平台开发讲解 - 4.1 Linux下i2c-tools使用

I2C-tools 是一组用于 Linux 系统的实用工具,用于与 I2C(Inter-Integrated Circuit)总线设备进行通信、调试和管理。

2023-07-21 14:04:40 142

Android11.0最新Framework解析

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

2022-07-29

空空如也

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

TA关注的人

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