嵌入式开发学习笔记总目录

苏文昊的嵌入式开发学习笔记总目录

  • 开发环境与开发工具
    • Ubuntu系统相关
    • Windows系统相关
    • 串口通讯相关
    • 网卡通信相关
    • 内核编译、设备树编译、内核模块编译相关
    • 代码阅读书写工具(IDE)
    • 代码同步工具
  • Linux系统相关
  • gcc交叉编译相关
  • Makefile文件的书写
  • 嵌入式驱动开发相关
  • 嵌入式应用开发相关
  • Git代码管理工具的使用
  • 开发板硬件和偏底层逻辑相关
  • 芯片相关
  • C/C++编程语言相关

开发环境与开发工具

Ubuntu系统相关

Ubuntu操作系统在Vmware中的安装、常用操作、最基础的知识

Ubuntu系统中,用Text Editor打开编辑文件 但是修改后无法保存,怎么办?

解决Ubuntu在VMware关机时,老是一个光标在那里闪动几分钟,才能关机的问题

怎么样能使Ubuntu的文件浏览器显示当前目录的路径,而不是只显示一个文件名?

首次打开发板厂家提供的Ubuntu-18.04镜像后,该做哪些事?

Vmware的网络适配器的NAT模式和桥接模式有何区别?如何给Uubunt系统添加桥接网卡?

在 Ubuntu 中 make 是否是系统自带的?怎么样查看Linux系统中是否有make?

如何设置Ubuntu18.04系统时间的时区?

Windows系统相关

如何打开Windows10的设备管理器

串口通讯相关

SecureCRT_8.0安装过程记录

SecureCRT_8.0的使用经验与Tips汇总

IMX6ULL开发板如何与PC进行串口进行终端通讯

网卡通信相关

设置IMX6ULL开发板的网卡IP的两种方法(临时生效和永久有效两种方法)

IMX6ULL开发板、PC机上的USB网卡、VMware中的Ubuntu的桥接网卡三者互Ping设置及设置

IMX6ULL开发板挂载 Ubuntu 的 NFS 目录,并以交叉编译得到的hello程序进行测试

内核编译、设备树编译、内核模块编译相关

Linux编译Kernel时的文件zImage、文件dtb(dtbs)、核心模块分别是什么东西?

编译生成IMX6ULL开发板的Linux内核(Kernel)zImage文件、设备树文件(dtb)、内核模块(ko)文件,编译好后更换掉开发板上之前的

IMUX6ULL开发板LED驱动模块的编译安装过程

代码阅读书写工具(IDE)

Source Insight 4.0的安装

Source Insight的使用经验、Tips汇总

Visual Studio Code(VS code-VScode)安装及使用经验、技巧汇总

代码同步工具

嵌入式开发之使用 FileZilla 在 Windows 和 Ubuntu 之间传文件

Linux系统相关

Linux常用命令(删除、关机、解压、复制(详解cp命令)、移动…

Linux中用pwd命令可以显示当前路径,请为pwd来自于什么的缩写?

Linux系统中的Kernel内核是什么东西?

Linux编译Kernel时的文件zImage、文件dtb(dtbs)、核心模块分别是什么东西?

怎么样理解“在Linux嵌入式开发中,一切皆是文件。”这句话?

Linux系统的etc目录介绍

Linux系统的阻塞方式和非阻塞方式是什么意思?

在Linux嵌入式编程中,与内存相关的堆(Heap)和栈(Stack)有什么区别?Linux中堆、栈、数据段(存储全局变量)、代码段的内存布局是怎么样的?各种变量的分配区域是怎么样的?

Linux下读取Windows下保存的文件,报错信息中出现“^M“时如何解决?【由于Windows和Linux的换行方式不同造成的-提供两种转换方式】

Linux的源码在Windows下解压时提示文件名字相同(重名)的原因及解决办法

Linux打开一个文件并读取内容的详细流程【inode结构体、fd文件描述符、struct file结构体、一个打开普通文件和一个打开设备文件的详细流程分析】

Linux的内核空间和用户空间是怎么回事儿?驱动程序位于内核空间中,与用户空间的数据传递通过copy_to_user和copy_from_user进行;Ring 0和Ring 3是啥意思?

Linux的proc目录与什么有关?【以及它里面的文件各自记录着什么信息】

Linux系统的ioremap()函数详解【包含对页对齐地址的详解】

Linux的内核空间中的日志打印函数printk的详解;如果设置printk 函数的默认日志级别和是否输出到终端控制台

与Linux的模块(module-MODULE)相关的知识汇总

为什么自己写的两个Linux模块,前一个加载时提示“loading out-of-tree module taints kernel”,后一个加载时就没有提示了?

gcc交叉编译相关

Ubuntu中配置交叉编译工具的三条命令的详细研究

Ubuntu中安装配置交叉编译工具 arm-buildroot-linux-gnueabihf-gcc 并进行测试

Linux系统中的gcc是什么东西?构建工具make的Makefile文件又是什么作用?

gcc命令中的-o参数并不是生成目标文件的意思,而是指定可执行文件的名称;如何生成目标文件;Linux中可执行文件没有exe的后缀

目标文件或可执行文件中的符号信息和调试信息是怎么回事儿?

gcc的链接器的相关知识要点(库的书写顺序、搜索库的路径、库的全名…)

Linux系统下交叉编译安装第三库时常用的“./configure“命令介绍(包含对prefix配置参数和make install时指定的路径的区别)

如何查看Linux的二进制可执行文件是该运行于哪个架构的平台上?【用file命令】

如何检查交叉编译器gcc工具链里是否有某个库(以zlib库和libpng库为例)

在交叉编译中,常见的ELF(elf)到底是什么意思?

如何查看gcc编译器编译时的include头文件搜索路径、各默认路径通常用于存放何种头文件、gcc编译器搜索头文件时不会去搜索默认路径中的子目录怎么办【头文件的目录嵌套】?

Makefile文件的书写

读懂和编写Makefile需掌握的关键基础知识(常用符号、先解析再执行、make命令的第一个动作、规则的概念、目标及伪目标的相关概念、文件更新机制、几个重要的自动化变量等知识)

Makefile文件编写的学习记录(以IMX6ULL开发板的Makefile文件和Makefile.build文件来进行学习)

关于顶层Makefile文件中的语句obj-y += display/和子目录Makefile文件中的语句obj-y += disp_manager.o的理解

有些Makefile文件以“.build”的后缀结尾是怎么回事儿?【Makefile.build文件是怎么回事儿?】

Makefile中遇到的touch命令是怎么回事儿?

Makefile中使用include语句时要特别注意避免陷入无限循环的死循环中

交叉编译Linux驱动程序和测试程序的Makefile文件解读

嵌入式驱动开发相关

Linux嵌入式开发中的基本文件操作函数open函数的介绍

Linux中的 read() 函数的介绍及使用实例

Linux嵌入式开发中的调试方法、技巧、经验汇总

为什么Linux驱动程序模块的C文件末尾要加上MODULE_LICENSE(“GPL“);

嵌入式驱动开发编程中涉及到的重要结构体——文件操作结构体:file_operations的完整定义

以一个实际例子来学习Linux驱动程序开发之“设备类”的相关知识【利用设备类实现对同一设备类下的多个LED灯实现点亮或关闭】

Linux系统中的文件描述符(文件句柄)的作用是什么?

Linux打开一个文件并读取内容的详细流程【inode结构体、fd文件描述符、struct file结构体、一个打开普通文件和一个打开设备文件的详细流程分析】

Linux驱动程序中文件操作结构体file_operations中定义的底层操作函数常用到的参数struct inode *node、struct file *file是怎么回事儿?

Linux驱动程序中文件操作结构体file_operations中定义的操作函数open、read、write 和 release 等函数都有固定的参数形式和返回值类型,它们何时被调用,各参数意义是?

Linux的内核空间和用户空间是怎么回事儿?驱动程序位于内核空间中,与用户空间的数据传递通过copy_to_user和copy_from_user进行;Ring 0和Ring 3是啥意思?

交叉编译Linux驱动程序和测试程序的Makefile文件解读

Linux驱动学习之第一个驱动程序(HelloWorld-最简单的字符型设备驱动程序-不设计具体的硬件的驱动程序)

Linux系统的ioremap()函数详解【包含对页对齐地址的详解】

Linux驱动学习之第二个驱动程序(LED点亮关闭驱动程序-分层设计思想,使其能适应不同的板子-驱动程序模块为多个源文件怎么写Makefile)

与Linux的模块(module-MODULE)相关的知识汇总

概要性了解Linux的总线设备驱动

Platform总线设备驱动是如何把设备资源描述结构体(platform_device)与驱动结构体(platform_driver)匹配起来的【函数platform_match()详解】

Platform总线设备驱动中非常重要的结构体platform_device的详细介绍【以及如何查看系统中存在的platform_device结构体的记录文件】

Platform总线设备驱动中非常重要的结构体platform_driver的详细介绍【以及如何查看系统中存在的platform_driver结构体的记录文件】

利用Linux的Platform总线设备驱动实现对多个LED的驱动【只是假想对LED进行驱动,并没有实际的硬件操作】【Makefile如何书写能生成多个模块文件】【总线设备驱动的好处】

与Linux的设备树文件(dts)的基础知识【根节点、子节点、标签名、节点名称、&开头的引用结构、嵌套节点的引用、节点格式的灵活性、禁止节点、命令行基本操作、实际例子等】

修改之前的代码使得利用设备树文件和Platform总线设备驱动实现对多个LED的驱动【只是假想对LED进行驱动,并没有实际的硬件操作】

为什么自己写的两个Linux模块,前一个加载时提示“loading out-of-tree module taints kernel”,后一个加载时就没有提示了?

Linux驱动学习之第三个驱动程序(两个按键的驱动程序-读取按键值)

BSP一般是由处理器芯片制造商提供还是开发板商提供?BSP是如何整合(编译)进内核中的?

利用设备树、Platform驱动总线、Linux的GPIO子系统和开发板的BSP(板级支持包)来实现LED的驱动程序

嵌入式应用开发相关

在Linux的嵌入式开发中,如何确定要操作的帧缓冲设备是第几个实例?即是fb0还是fb1还是fb2…

嵌入式Linux开发中的内存映射函数mmap详解?什么叫内存映射?什么叫对设备的显式和隐式读写操作?什么叫程序的虚拟内存?

IMX6ULL开发板基础实验:Framebuffer驱动程序的简单应用实例代码详细分析

嵌入式应用实例→电子产品量产工具→显示系统的代码阅读和上机测试记录

嵌入式应用实例→电子产品量产工具→触摸屏输入系统的代码阅读和上机测试记录

tslib(触摸屏输入设备的轻量级库)的学习、编译及测试记录

Linux嵌入式系统网络套接字编程中的重要结构体sockaddr_in的介绍

Linux嵌入式系统利用套接字编程(Socket Programming)实现网络通信的基础知识并附对一个简单实例的分析

为什么在网络套接字编程中对于recvfrom()收到的数据的缓存数组要预留一个位置并把这个位置置为字符‘\0‘?

嵌入式应用实例→电子产品量产工具→网络输入系统的代码分析和上机测试记录

Linux嵌入式编程中与线程有关的知识(线程的概念、线程的创建、互斥锁、线程挂起、主线程、如何看查线程的ID等知识点)

Linux嵌入式开发中的调试方法、技巧、经验汇总

FreeType矢量字符库的介绍、交叉编译以及安装

嵌入式应用实例→电子产品量产工具→UI界面的绘制和测试

解决嵌入式应用实例→电子产品量产工具→业务系统代码中“led按钮”放手后就恢复为红色的bug的调试记录

嵌入式应用实例→电子产品量产工具→业务系统的代码分析和测试(重点:配置文件的解析、UI界面的生成、输入事件的处理)

嵌入式应用实例→电子产品量产工具→对按钮中文字的改进和对函数名进行优化

嵌入式应用实例→电子产品量产工具→业务系统能支持配置文件中的command项(能运行command项中的脚本文件)

Git代码管理工具的使用

在Windows系统上使用Git将仓库代码克隆拉取到本地、拉取到本地后如果仓库代码有更新,那么如何更新、更新机制又是怎样的?

如何在Ubuntu中利用repo和git地址下载获取imx6ull的BSP

开发板硬件和偏底层逻辑相关

IMX6ULL开发板拿到货后如何测试?

恩智浦半导体(NXP)公司的介绍,它与飞思卡尔有什么联系?

恩智浦半导体(NXP)的 i.MX_6ULL嵌入式处理器介绍

IMX6ULL开发板各硬件资源说明示意图

嵌入式系统的EMMC启动方式是怎么回事儿?

芯片相关

IMX6ULL的IOMUXC寄存器和SNVS复用寄存器似乎都是对引脚指定复用功能的,那二者有何区别?

C/C++编程语言相关

C/C++函数参数传递时值传递、指针传递、引用传递的区别是什么?

关于C/C++中typedef为一个类型(包括结构体类型)同时定义多个别名、定义指针类型别名的语法

C/C++包含头文件的两种方式:尖括号方式 (<>)和双引号方式 (““)的区别

C/C++的关键词static加在函数定义前、全局变量前和函数内的变量前有什么作用?(分别是限制函数和全局变量的作用域在当前文件内和函数调用的整个期间内保留其值而不是每次初始化其值)

C语言中,const 关键字的本质作用是什么?const char *point1、char *const point2、const char *const point3等的区别是什么?

C语言结构体的初始化时并不会调用其成员函数

C语言中怎样将NULL定义为空指针?空指针的具体值其实为0哈,即地址值为0的指针为空指针。

在C语言中,访问结构体的成员时,什么时候用.【符号点】,什么时候用符号->

C语言中A文件中的代码调用B文件中的某个函数,假如B文件中这个函数需要某个头文件中定义的某些东西,那么A文件中要不要包含这个头文件需要视具体情况而定。

C语言中,假如我一个C文件包含了两个头文件,而两个头文件中都有对同一个宏或结构体的定义,编译时如何处理?

C语言初始化一个结构体的时候,并不是是否每个成员都需要初始化,那没有初始化的量值为多少呢?

C语言中,数组的指针的递增运算会指向数组的下一个元素

字符串末尾符‘\0‘和数字0的ASCII编码是不一样的

C语言的strncpy()函数在什么情况下会添加字符串末尾符‘\0‘,又什么情况下不会添加?

在一个C工程文件中,如果一个函数要引用另一个文件中的函数,并不是用extern进行声明,而是在包含的头文件中进行声明

详解C语言中的关键词:extern以及它需要注意的事项

在C语言中,字符指针“char *name”和字符数组“char name[]“各自适用哪些场景?

Linux编程中C函数定义的第一行中出现的关键字“__init”是什么意思?

C语言带参数的宏定义的相关知识汇总(最常用的形式、带标记分隔符##的形式…)

C语言变量修饰符volatile的含义和需要注意的地方

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/955445.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【原创】大数据治理入门(10)《数据资产化:从数据到价值》入门必看 高赞实用

数据资产化:从数据到价值 引言:数据资产化的概念 数据资产化(Data Monetization)是指将企业内部的各种数据转化为有价值的资产,通过数据的应用和分析提升企业的运营效率、降低成本、增加收入和优化决策。在大数据时代…

5-1 创建和打包AXI Interface IP

创建和打包AXI Interface IP的前流程和后流程 step 1 : 选择类型 1: 将当前的工程打包成IP 2: 将当前的BD工程打包成IP 3: 将指定的源码打包成IP 4: 创建一个新的AXI 接口IP 其中3和4是比较常用的,本次…

一文简要了解为什么需要RAG、核心原理与应用场景

欢迎来到AI应用探索,这里专注于探索AI应用。 一、为什么需要RAG,它解决了哪些问题 在自然语言处理领域,生成式预训练模型(如GPT)已经展示了强大的文本生成能力。然而,这些模型有以下局限性: 知…

很简单的K8s集群部署方法-KubeKey自动化部署

K8s集群部署方法-KubeKey自动化部署 文章后续KubeSphere部署安装,接入KubeKey安装的k8s集群 文章目录 K8s集群部署方法-KubeKey自动化部署 一.清理kubeadm安装的k8s集群缓存二.服务器安装前准备1.设置主机名2.配置时间同步3.关闭系统防火墙4.安装系统依赖5.关闭swap…

Linux之文件系统前世今生(一)

Linux在线1 Linux在线2 一、 基本概念 1.1 块(Block) 在计算机存储之图解机械硬盘这篇文章中我们提到过,磁盘读写的最小单位是扇区,也就是 512 Byte;很明显,每次读写的效率非常低。 为了提高IO效率&…

.netframwork模拟启动webapi服务并编写对应api接口

在.NET Framework环境中模拟启动Web服务,可以使用几种不同的方法。一个常见的选择是利用HttpListener类来创建一个简单的HTTP服务器,或者使用Owin/Katana库来自托管ASP.NET Web API或MVC应用。下面简要介绍Owin/Katana示例代码。这种方法更加灵活&#x…

【0x0052】HCI_Write_Extended_Inquiry_Response命令详解

目录 一、命令概述 二、命令格式及参数 2.1. HCI_Write_Extended_Inquiry_Response命令格式 2.2. FEC_Required 2.3. Extended_Inquiry_Response 三、生成事件及参数 3.1. HCI_Command_Complete 事件 3.2. Status 四、命令执行流程 4.1. 命令准备阶段(主机端) 4.2…

qt vs ios开发应用环境搭建和上架商店的记录

qt 下载链接如下 https://download.qt.io/new_archive/qt/5.14/5.14.2/qt-opensource-mac-x64-5.14.2.dmg 安装选项全勾选就行,这里特别说明下qt5.14.2/qml qt5.14.2对qml支持还算成熟,但很多特性还得qt6才行,这里用qt5.14.2主要是考虑到服…

Mockito+PowerMock+Junit单元测试

一、单元测试用途 1、日常开发团队要求规范,需要对开发需求代码进行单元测试并要求行覆盖率达到要求,DevOps流水线也会开设相关门禁阀值阻断代码提交,一般新增代码行覆盖率80%左右。 二、Mock测试介绍 1、Mock是为了解决不同的单元之间由于…

candb++ windows11运行报错,找不到mfc140.dll

解决问题记录 mfc140.dll下载 注意:放置位置别搞错了

【Spring Boot】Spring AOP 快速上手指南:开启面向切面编程新旅程

前言 ???本期讲解关于spring aop的入门介绍~~~ ??感兴趣的小伙伴看一看小编主页:-CSDN博客 ?? 你的点赞就是小编不断更新的最大动力 ??那么废话不多说直接开整吧~~ 目录 ???1.AOP概述 1.1什么是AOP ?1.2什么是Spring AOP ???2.Spring AOP入…

(01)STM32—GPIO

1. GPIO简介 GPIO(General Purpose Input Output)通用输入输出端口。可配置为8种输入输出模式。引脚电平:0V~3.3V,部分引脚可容忍5V。输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时…

python实现pdf转word和excel

一、引言   在办公中,我们经常遇收到pdf文件格式,因为pdf格式文件不易修改,当我们需要编辑这些pdf文件时,经常需要开通会员或收费功能才能使用编辑功能。今天,我要和大家分享的,是如何使用python编程实现…

基于 Python 的深度学习的车俩特征分析系统,附源码

博主介绍:✌stormjun、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

C#实现字符串反转的4种方法

见过不少人、经过不少事、也吃过不少苦,感悟世事无常、人心多变,靠着回忆将往事串珠成链,聊聊感情、谈谈发展,我慢慢写、你一点一点看...... 1、string.Reverse 方法 string content "Hello World";string reverseStri…

LabVIEW串口通信调试与数据接收问题

在使用LabVIEW进行串口通信时,常常会遇到无法接收数据的情况。这可能与串口设置、连接、设备响应等多方面因素相关。本文将详细讨论如何使用LabVIEW进行串口通信,并提供常见问题的排查与解决方法,帮助用户更高效地进行数据接收调试。通过调整…

单元测试与unittest框架

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,薪资嘎嘎涨 单元测试的定义 1. 什么是单元测试? 单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作&am…

LuaJIT Garbage Collector Algorithms

Explain 本篇文章是对Make Pall发表wili内容《LuaJIT 3.0 new Garbage Collector》的翻译和扩展,因为原文是对LuaJIT 2.x GC重要功能的简介和对LuaJIT 3.0 new GC的工作计划,所以它并不是系统性介绍GC的文章。希望以后能有精力系统性的对LuaJIT 2.x GC做…

1.17组会汇报

STRUC-BENCH: Are Large Language Models Good at Generating Complex Structured Tabular Data? STRUC-BENCH:大型语言模型擅长生成复杂的结构化表格数据吗?23年arXiv.org 1概括 这篇论文旨在评估大型语言模型(LLMs)在生成结构…

EF Core全局查询筛选器

目录 概述 用法 添加全局查询筛选器 禁用全局查询筛选器 概述 全局查询筛选器:EF Core 会自动将这个查询筛选器应用于涉及这个实体类型的所有 LINQ 查询。 场景:软删除、多租户。 什么是软删除? 逻辑删除,并不是真正地从数…