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

news2025/1/17 4:50:22

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

  • 开发环境与开发工具
    • 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的驱动程序【IMX6ULL设备树语句生成工具Pins_Tool的使用】

嵌入式应用开发相关

在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的含义和需要注意的地方

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

citrix netscaler13.1 重写负载均衡响应头(基础版)

在 Citrix NetScaler 13.1 中,Rewrite Actions 用于对负载均衡响应进行修改,包括替换、删除和插入 HTTP 响应头。这些操作可以通过自定义策略来完成,帮助你根据需求调整请求内容。以下是三种常见的操作: 1. Replace (替换响应头)…

Linux Centos 安装Jenkins到服务

一、前言 假设你已经下载了jenkins.war 安装了对应的jdk,下面我们来安装jenkins,以服务的形式安装。 二、安装 1)将jenkins.war拷贝到合适的位置,我的位置 /u01/jenkins/ ,位置你自己选。 2)创建系统用户…

网安——计算机网络基础

一、计算机网络概述 1、Internet网相关概念及发展 网络(Network)有若干结点(Node)和连接这些结点的链路(link)所组成,在网络中的结点可以是计算机、集线器、交换机或路由器等多个网络还可以通…

Xcode 正则表达式实现查找替换

在软件开发过程中,查找和替换文本是一项常见的任务。正则表达式(Regular Expressions)是一种强大的工具,可以帮助我们在复杂的文本中进行精确的匹配和替换。Xcode 作为一款流行的开发工具,提供了对正则表达式的支持。本…

数据结构9——二叉搜索树

🥇1.二叉搜索树的概念 二叉搜索树(Binary Search Tree,BST)又称二叉排序树或二叉查找树,其要么是一棵空树,要么具有以下性质: ①:左子树上所有节点的值都小于根节点; ②:右子树上所有节点的值都…

leetcode刷题记录(四十八)——128. 最长连续序列

(一)问题描述 128. 最长连续序列 - 力扣(LeetCode)128. 最长连续序列 - 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复…

c语言——【linux】多进程编程 【进程的创建,相关shell指令,进程状态切换,回收资源,守护进程等】

1.思维导图 2.进程的创建 函数原型:pid_t fork(void); 功能描述:以当前进程为父进程,创建一个子进程 进程链和进程扇的创建 3.多进程具体使用 3.1进程替换 exec 函数一族 int execl(const char *path, const char *arg, ... /* (char *) N…

在服务器上增加新网段IP的路由配置

在服务器上增加新网段IP的路由配置 前提条件步骤一:检查当前路由表步骤二:添加新路由步骤三:验证新路由步骤四:持久化路由配置脚本示例结论在网络管理中,路由配置是一项基本且重要的任务。它决定了数据包在网络中的传输路径。本文将详细介绍如何在服务器上增加新的路由配置…

国产fpga nvme ip高速存储方案设计

国产高速存储方案主要是使用nvme ip实现高速存储方案,nvme ip采用纯verilog语言实现,用户拿到nvme ip使用起来也很简单。 先看看效果如 zu7eg板子,这个芯片支持pcie3.0 x4. zynq 7045板子只支持pcie 2.0 x4 速度测试,测试nvme …

浅谈云计算14 | 云存储技术

云存储技术 一、云计算网络存储技术基础1.1 网络存储的基本概念1.2云存储系统结构模型1.1.1 存储层1.1.2 基础管理层1.1.3 应用接口层1.1.4 访问层 1.2 网络存储技术分类 二、云计算网络存储技术特点2.1 超大规模与高可扩展性2.1.1 存储规模优势2.1.2 动态扩展机制 2.2 高可用性…

[操作系统] 深入理解约翰·冯·诺伊曼体系

约翰冯诺依曼(John von Neumann,1903年12月28日—1957年2月8日),原名诺伊曼亚诺什拉约什(Neumann Jnos Lajos),出生于匈牙利的美国籍犹太人数学家,20世纪最重要的数学家之一&#xf…

ElasticSearch上

安装ElasticSearch Lucene:Java语言的搜索引擎类库,易扩展;高性能(基于倒排索引)Elasticsearch基于Lucene,支持分布式,可水平扩展;提供Restful接口,可被任何语言调用Ela…

Qt应用之MDI(多文档设计)

qt creator 版本6.8.0 MinGW 64bit 由此模块可以扩展成设计一个qt文本编辑器。 界面如下 部分功能展示如下 新建文件 打开文件 mdi模式、级联模式和平铺模式 界面和程序构建过程。 1.如图所需.cpp和.h文件 2.mainwindow.ui和tformdoc.ui界面布局如下 不懂什么是Action如何…

【博主推荐】VUE常见问题及解决方案

文章目录 1.找不到模块“../views/index.vue”或其相应的类型声明。ts(2307)2.当改变 Vue 实例中的数据时,视图没有相应地更新3.在某些复杂的异步操作或者多个数据交互场景下,数据绑定的更新在时间上出现延迟4.父组件无法将数据正确地传递给子组件&#…

【Apache Doris】周FAQ集锦:第 29 期

引言 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和开发者分享有关 Apache Doris 的常见问题。 通过这个每周 FAQ 栏目,希望帮助社…

TensorFlow DAY3: 高阶 API(Keras,Estimator)(完)

TensorFlow 作为深度学习框架,当然是为了帮助我们更便捷地构建神经网络。所以,本次实验将会了解如何使用 TensorFlow 来构建神经网络,并学会 TensorFlow 构建神经网络的重要函数和方法。 知识点 Keras 顺序模型Keras 函数模型Keras 模型存储…

【React】脚手架进阶

目录 暴露webpack配置package.json的变化修改webpack.config.js配置less修改域名、端口号浏览器兼容处理处理跨域 暴露webpack配置 react-scripts对脚手架中的打包命令进行封装,如何暴露这些打包配置呢?上篇写到在package.json中的scripts配置项中有eje…

Thrustmaster Hotas Warthog飞行操作杆开发

目录 0 摘 要 :简单说一下这篇文章在搞啥 1 背 景 :什么需求以及对开发的背景调查 2 环境配置 :具体需要什么环境,对软件层面的需求 3 硬件测试 :测试遥感器…

OpenCV基于均值漂移算法(pyrMeanShiftFiltering)的水彩画特效

1、均值漂移算法原理 pyrMeanShiftFiltering算法结合了均值迁移(Mean Shift)算法和图像金字塔(Image Pyramid)的概念,用于图像分割和平滑处理。以下是该算法的详细原理: 1.1 、均值迁移(Mean …

1.15学习

web ctfhub-网站源码 打开环境,查看源代码无任何作用,但是其提醒就在表面暗示我们用dirsearch进行目录扫描,登录kali的root端,利用终端输入dirsearch -u 网址的命令扫描该网址目录,扫描成功后获得信息,在…