嵌入式Linux小项目
文章平均质量分 88
本专栏将会和大家分享一些我做的嵌入式Linux小项目的学习过程以及遇到的问题的解决方法
小嵌同学
这个作者很懒,什么都没留下…
展开
-
Linux:NTP校时、PTP校时
在进行网络协议通信时,我们有时候需要计算通信的延迟。一般的方式就是:A端获取本地时间信息并将其填充到网络数据包中进行发送,B端收到数据包后进行解析获取到A发来的时间,然后B获取本地时间进行运算,网络延迟 = B端本地时间 - A端本地时间。NTP(Network Time Protocol)是一种用于同步计算机时间的协议。它能够确保计算机时钟与全球统一的时间标准保持同步。NTP使用一组分层的时间服务器来提供准确的时间参考。顶层的时间服务器会从原子钟或其他高精度时间源获取时间,并将它们传播到更低层的服务器。原创 2024-01-12 00:59:20 · 1964 阅读 · 0 评论 -
蓝牙HID模式下输出中文原理简介
蓝牙是一种无线通信协议,用于短距离数据传输。它的主要功能是在电子设备之间创建无线连接,并支持数据传输。HID (Human Interface Device) 是一种通用设备协议,用于连接人机界面设备,如键盘、鼠标、游戏手柄等。当蓝牙和HID结合使用时,人机接口设备可以通过无线蓝牙连接到其他电子设备,从而实现数据传输和控制。例如,如果一个蓝牙键盘和一个电脑连接,当用户在键盘上输入字符时,它们将通过蓝牙连接发送到电脑,然后在电脑上显示出来。原创 2023-07-16 23:52:43 · 1477 阅读 · 0 评论 -
JSON入门与简单使用
这几天工作中需要了解json的基本使用,所以抽时间在网上找了点资料学习了一下,这里进行简单总结,和大家分享一下。JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) , JS 对象简单数据格式 JSON 是轻量级的文本数据交换格式, JSON 是存储和交换文本信息的语法,类似 XML。JSON 独立于语言: JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。原创 2023-02-20 00:19:02 · 865 阅读 · 1 评论 -
Linux 程序开发 之 库打桩机制
Linux 链接器支持一个很强大的技术,称为库打桩(library interpositioning),它允许你截获对共享库函数的调用,取而代之执行自己的代码。使用打桩机制,你可以追踪对某个特殊库函数的调用次数,验证和追踪它的输入和输出值,或者甚至把它替换成一个完全不同的实现。基本思想:给定一个需要打桩的目标函数,创建一个包装函数,它的原型与目标函数完全一样。使用某种特殊的打桩机制,你就可以欺骗系统调用包装函数而不是目标函数了。原创 2022-12-12 00:44:42 · 1397 阅读 · 0 评论 -
音视频开发基础概念
一个图片的基本单位, pix是英语单词picture的简写,加上英语单词“元素element”,就得到了**“pixel”**,简称px,所以“像素”有“图像元素”之意。每个通道的位深越大,能够表示的颜色值就越大,比如现在高端电视说的10bit色彩,即是每个通道用10bit表示,每个通道有1024种颜色。原创 2022-11-10 00:24:23 · 1061 阅读 · 5 评论 -
基于HI3516/HI3518/HI3559内部ADC驱动实现
最近实际开发中需要实现海思SOC内部自带的一个ADC的驱动,但海思SDK中并未提供相应的软件驱动支持,故需要自己去实现,整体流程也比较简单,不过对于第一次接触海思开发的人来说有一点困难。原创 2022-10-16 16:53:10 · 1638 阅读 · 0 评论 -
uboot源码分析(基于S5PV210)之uboot的命令体系与环境变量
命令举例:version命令(command.c中33行开始的do_version函数)(1)U_BOOT_CMD宏基本分析(,,,,,)cmd_tbl_t={,,,,,}((,section()))这个宏定义在uboot / common / command . h中。#name , maxargs , rep , cmd , usage , help } __attribute__ :gcc扩展语法,用于给前边这个变量 cmd_tbl_t __u_boot_cmd_version。原创 2022-09-18 23:36:13 · 247 阅读 · 0 评论 -
简易根文件系统构建实验及过程详解
(1)rootfs有2种格式:nfs方式启动的文件夹形式的rootfs 和 用来烧录的镜像形式的rootfs(2)我们先从空文件夹开始,逐步向其中添加一些rootfs中必备的东西,然后做一步就用nfs方式去挂载启动,观察启动后的现象,并且理论上去分析原因。原创 2022-09-04 00:14:49 · 713 阅读 · 0 评论 -
LVGL简介(基于v8.1-8.2)
LVGL(Light and Versatile Graphics Library)是一个轻量级的嵌入式图形库。LVGL的项目作者是来自匈牙利首都布达佩斯的 Gábor Kiss-Vámosi 。Kiss 在2016年将其发布在 GitHub上。原创 2022-08-07 23:32:35 · 26096 阅读 · 0 评论 -
USB WIFI网卡在S5PV210上的移植和使用最全攻略(2)
目录一、在自己制作的rootfs中移植网卡1、确认自己制作的rootfs可正常工作并启动2、需要的工具集确认3、交叉编译iwconfig二、移植wpa_supplicant并制作镜像1、交叉编译 wpa_supplicant2、在nfs中测试wpa_supplicant使用3、制作ext2镜像并刷机测试一、在自己制作的rootfs中移植网卡1、确认自己制作的rootfs可正常工作并启动(1)busybox交叉编译制作根文件系统(2)启动后直接nfs方式挂载文件夹形式的rootfs,测试ok后再做成镜原创 2021-12-12 21:19:21 · 3214 阅读 · 0 评论 -
USB WIFI网卡在S5PV210上的移植和使用最全攻略(1)
目录一、本篇文章将会带来那些干货1、MT7601网卡驱动的移植2、无线网卡的配置和使用3、在自己定制的rootfs中移植USB WIFI4、在自己定制的rootf中添加dhcp支持二、项目各项材料的准备和确认1、开发环境搭建和确认2、网卡驱动源码确认3、USB WIFI网卡硬件确认三、驱动源码修改及编译1、确认USB的VID和PID2、修改源码目录下的Makefile3、修改网卡名字(可选)4、添加 wpa_supplicant 支持5、编译生成驱动模块四、USB WIFI网卡驱动源码简单分析1、关键点1:原创 2021-12-11 21:26:51 · 1533 阅读 · 0 评论 -
嵌入式Linux小项目之X210上QT5.6.2移植和开发环境搭建
目录一、QT背景知识介绍1、常见GUI系统2、QT的发展例程3、QT如何跨平台4、QT相关的其他一些名字5、QT的网络资源二、QT的官网资源开发环境搭建1、QT官网资源2、QT开发环境搭建3、QT的linuxfb介绍三、移植前的准备和确认工作1、移植环境2、开发板状况确认3、测试确认ts驱动部分四、tslib移植和测试1、tslib移植2、问题及解决:3、部署4、导出环境变量5、运行和测试五、QT5.6.2配置和交叉编译1、源码下载和解压2、配置3、编译中的错误解决六、linux下QT应用开发环境搭建1、u原创 2021-11-15 20:48:33 · 2824 阅读 · 0 评论 -
嵌入式Linux小项目之图片编解码播放器学习导读
首先欢迎大家阅读本篇文章,在这里我将会为大家简要介绍一下图片编解码播放器系列文章的学习路线。 该小项目共有七篇文章,分别为《嵌入式Linux小项目之图片编解码播放器(1-7)》,这七篇文章完整向大家讲述了该项目的由来,规划,具体的实现步骤,对于开发过程中用到的一些资源我也提供了网盘下载链接(若是有遗漏的,大家可以评论区留言或者私信我)。大家按照文章的数字顺序(1-7)依次去学习,一定可以实现这个小项目的,当然你也可能遇到我没有遇到的问题,这就需要你自己去解决了,解决问题的过程就是一个学习的过程。当然原创 2021-11-13 20:50:39 · 3477 阅读 · 0 评论 -
嵌入式Linux小项目之图片编解码播放器(7)
目录一、图片文件的管理和检索1、图片文件的管理2、图片信息的自动检索3、实践编程和调试二、添加触摸翻页功能1、读取触摸坐标数据2、使用触摸坐标判断并执行翻页操作三、总结与回顾1、bug解决2、项目总结3、项目展望与扩展功能一、图片文件的管理和检索1、图片文件的管理(1)在物理磁盘存储层次上:用一个文件夹来管理;在程序中,用数据结构来管理。(2)用数组管理大小是提前规定好的,不便于扩展,不灵活(3)用链表管理大小可变,灵活便于管理,但耗费内存(4)编程实战2、图片信息的自动检索(1)读取文原创 2021-11-12 22:22:51 · 1374 阅读 · 0 评论 -
嵌入式Linux小项目之图片编解码播放器(6)
目录一、解码显示png图片1、思路分析2、libpng移植3、zlib移植4、参考源码包自带的资料5、根据示例代码开始编程一、解码显示png图片1、思路分析(1)png更像是jpg而不像是bmp(2)png和jpg都是压缩格式的图片,都是二进制文件,不同之处是压缩和解压缩的算法不同。(3)通过libjpeg来编解码jpg图片,那么同样有一个libpng用来编解码png图片。(4)工作思路和顺序:找到并移植并部署libpng,然后查readme和其他文档示例代码等来使用libpng提供的API来对原创 2021-11-11 19:18:40 · 1410 阅读 · 0 评论 -
嵌入式Linux小项目之图片编解码播放器(5)
目录一、jpg图片的显示原理分析1、认识jpg图片2、jpg图片如何显示3、如何解码jpg图片二、libjpeg介绍及开源库的使用方法1、libjpeg介绍2、libjpeg版本及下载资源3、开源库的使用方法三、libjpeg的移植实战1、移植2、部署四、使用libjpeg解码显示jpg图片1、如何使用一个新的库2、libjpeg说明文档和示例代码3、结合说明文档和示例代码来一边学习一边编码一边实践4、example.c浅析5、编译调试6、部署动态库以使程序运行起来7、测试读取头信息8、解决解码显示中的问题原创 2021-11-09 20:44:42 · 1313 阅读 · 0 评论 -
嵌入式Linux小项目之图片编解码播放器(4)
目录一、及时规整才能写出好项目1、再次强调规范问题2、为什么要规整项目3、对项目进行规整4、一些重构代码的技巧5、一些调试技巧一、及时规整才能写出好项目1、再次强调规范问题(1)函数、变量起名字要合法合理(2)要写注释(3)函数长短要合适(4)多文件组织,每个东西丢到合理的位置可参考:《华为的C语言编程规范》链接地址:我用阿里云盘分享了「华为C语言规范.pdf」,你可以不限速下载????复制这段内容打开「阿里云盘」App 即可获取链接:https://www.aliyundrive.co原创 2021-10-31 22:03:03 · 1107 阅读 · 0 评论 -
嵌入式Linux小项目之图片编解码播放器(3)
目录一、BMP图片的显示1、图片文件的本质2、BMP图片详解3、BMP文件头信息4、图片有效数据区5、写代码解析BMP图片6、BMP图片的显示7、用结构体方式解析BMP文件头8、解析信息头二、编程实践一、BMP图片的显示1、图片文件的本质(1)二进制文件(文件分2种:2进制文件和文本文件)(2)不同格式的图片文件的差别(3)BMP图片的基本特征:未被压缩的元素位图格式2、BMP图片详解(1)BMP文件如何识别:每种图片格式都有定义好的一种识别方法,BMP图片特征是以0x424D开头(2)BM原创 2021-10-30 21:17:58 · 618 阅读 · 0 评论 -
嵌入式Linux小项目之图片编解码播放器(2)
目录一、图片数据提取和显示1、Image2LCD提取图片数据2、图片显示编码与实践二、图片显示的高级话题1、RGB顺序调整2、显示函数的其他写法三、其他显示细节问题1、任意分辨率大小图片显示一、图片数据提取和显示1、Image2LCD提取图片数据(1)软件下载:http://www.cr173.com/soft/43222.html(2)软件使用1、首先找一张图片,格式为jpg,可自行在百度找一张,颜色尽量丰富,测试效果更好些我给大家提供一张我用的图片。2、使用该软件打开图片。示例图片:原创 2021-10-27 21:29:07 · 689 阅读 · 0 评论 -
嵌入式Linux小项目之图片编解码播放器(1)
目录前言一、项目展示与整体规划二、环境搭建和基础确认三、开始动手写代码四、framebuffer基本操作代码五、图片显示原理和实践前言首先非常感谢大家来阅读我的文章,在这里特别感谢朱老师的嵌入式Linux课程让我学到了很多东西,我博客的许多文章也是由朱老师的课程笔记加上自己的一些理解总结而来的。本篇博客将和大家分享一个小项目——图片编解码播放器,其中会用到驱动、IO编程、kernel配置操作的一些知识等等,算是对前边所学知识的综合运用。如果大家之前浏览过我的文章,那么这篇包括之后的文章希望能让大家有所收原创 2021-10-26 19:12:37 · 1548 阅读 · 0 评论