![](https://img-blog.csdnimg.cn/20210625102725242.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux系统
文章平均质量分 61
linux系统方面的技术总结
一只有理想的程序猿
在嵌入式领域摸爬滚打的小菜鸟。
展开
-
GPIO和Pinctrl子系统的使用
目录前言Pinctrl子系统前言使用直接操作寄存器的方法编写驱动,非常低效。Linux 下针对引脚有 2 个重要的子系统:GPIO、Pinctrl。Pinctrl子系统无论是何种芯片都有类似下图的结构: 要想让 pinA、B 用于 GPIO,需要设置 IOMUX 让它们连接到 GPIO 模块;要想让 pinA、B 用于 I2C,需要设置 IOMUX 让它们连接到 I2C 模块。所以 GPIO、I2C 应该是并列的关系,它们能够使用之前,需要设置 IOMUX。有时候并不仅仅是设置 IOM原创 2021-07-09 15:08:50 · 1244 阅读 · 1 评论 -
Linux必备命令汇总
目录前言Linux命令的组成常用命令&概念汇总当前路径和上一级路径上一次的路径绝对路径和相对路径ls各项含义mkdirrmdirtouchmv前言如果想成为一名嵌入式Linux工程师,Linux常用的命令一定要烂熟于心。Linux命令的组成 常用命令&概念汇总当前路径和上一级路径使用 . 表示当前路径使用 … 表示上一级路径使用 …/…表示上上级路径,依此类推。上一次的路径使用 - 表示上一次的路径绝对路径和相对路径绝对路径:从根目录一级原创 2021-07-06 21:59:09 · 293 阅读 · 1 评论 -
一文搞懂设备树基础语法
目录1、设备树的引入设备树语法1、设备树的引入首先需要了解Linux系统平台总线设备驱动模型的框架在这篇博客中我概述了如何快速通过平台总线设备驱动模型来编写驱动程序。在这个模型中,我们提供了通用的硬件驱动程序,对于不同的单板,我们只需要提供对应的board_xxx.c提供对应的硬件资源即可。那么出现一个问题,对于同一款芯片我们有成千上万的单板,因此就会存在成千上万的单板程序在内核当中。另外一个问题是,当你需要在单板中更改硬件资源,就需要重新编译对应的单板文件。总结起来:#mermaid-svg-8Qx原创 2021-07-05 21:12:02 · 2408 阅读 · 2 评论 -
快速上手Linux系统总线设备驱动模型
什么是总线设备驱动模型用一个流程图来概况:Bus/Dev/Drv模型#mermaid-svg-lGLR1vZEznbjncGM .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-lGLR1vZEznbjncGM .label text{fill:#333}#mermaid-svg-lGLR1vZEznbjncG原创 2021-06-27 23:09:07 · 123 阅读 · 0 评论 -
在设备树中指定中断,在代码中获得中断
在设备树中指定中断设备树是用来描述设备的,那么设备树如何描述中断控制器呢?中断硬件框图:在硬件层面中断控制器只有GIC这一个,但是在软件层面我们把上图中的GPIO也称为中断控制器。很多芯片上有多个GPIO,所以软件层次上的“中断控制器”也就会有很多个。这些中断控制器还可能存在级联关系。GPIO1连接到GIC,GPIO2连接到GIC,所以GPIO1、GPIO2中断控制器的父亲是GIC.同时如果GPIO1有32个中断源,但是他会把其中的16个汇聚起来向GIC发出一个中断,把另外16个汇聚起来向GIC发原创 2021-06-10 23:33:51 · 1070 阅读 · 0 评论 -
一分钟带你理解Linux中断系统中重要的数据结构
1、irq_desc数组irq_desc结构体在include/linux/irqdesc.h中定义,主要内容如下图:分析下图,当发生中断时,硬件上中断流程方向为从左到右。软件分析处理中断时则是从右到左。软件处理流程:1、CPU先去读取GIC分析得出发生的是A号中断,随后去调用irq_desc[A].handler_irq函数,该函数读取 GPIO_Reg,确定GPIO中断(B号)2、GPIO B号中断结构体中的handle_irq被调用,该函数从结构体中的irqaction链表原创 2021-06-10 11:19:18 · 604 阅读 · 0 评论 -
sudo apt --fix-broken install解决Ubuntu挂载问题
问题在Ubuntu上挂载自己,不成功。解决方法:1、Ubuntu上运行脚本wget --no-check-certificate -O Configuring_ubuntu.sh https://weidongshan.coding.net/p/DevelopmentEnvConf/d/DevelopmentEnvConf/git/raw/master/Configuring_ubuntu.sh && sudo chmod +x Configuring_ubuntu.sh &原创 2021-04-21 15:40:04 · 1398 阅读 · 0 评论 -
启动Ubuntu,找不到网卡IP。
问题打开Ubuntu、打开MobaXterm后,MobaXterm访问不到Ubuntu,在Ubuntu中执行ifconfig命令后,只显示127.0.0.1。解决方法:1、查看Ubuntu是否设置为NAT(Network Address Translation—网络地址转换)网络。2、关闭Ubuntu注意不是挂起,然后重启。...原创 2021-04-21 10:56:33 · 762 阅读 · 0 评论 -
Linux网络编程
基础知识首先熟悉一下基本的概念知识。服务器:特点是被动的响应请求。客户端:特点是主动的发起请求。网络数据传输基本方式:TCP UDP两种方式TCP :可靠的。具有重传机制。有连接的传输,也就是在发数据前需要先建立连接。UDP:不可靠的。无连接的传输。数据传输需要三个要素:源、目的、长度。在网络数据传输中用什么表示数据传输三要素。IP 和 端口下边介绍编写TCP网络编程的流程伪代码。// 服务器端代码1、fd = socket();2、bind(自己的IP、端口); // 如果是发的原创 2021-04-11 14:41:52 · 115 阅读 · 0 评论 -
编码解码方式的不同导致你打开的文件是乱码
ANSIANSI包容ASCII码。ANSI对于ASCII字符仍以一个字节来表示,对于非ASCII字符则使用2字节表示。因为ASCII字符的bit7都是0,当ANSI发现bit7不是0时,就可以判定它不是ASCII码,从而区分哪些是ASCII码,哪些不是ASCII码。使用ANSI时,同一个值在不同的字符集下代表不同的意思。unicode解决了数值和字符一对多的关系。UNICODEUNICODE 中的数值范围是 0x0000 至 0x10FFFF,可以表示 100 多万个字符,足够地球人使用了。UN原创 2021-04-01 09:54:36 · 878 阅读 · 0 评论 -
FrameBuffer应用编程
FrameBuffer是什么?FrameBuffer是LCD的一种驱动程序。在驱动程序中会在内存里分配一个FrameBuffer。在FrameBuffer中会保存有LCD屏上每一个像素点的颜色值。以下图为例讲。在FrameBuffer中这第0个数据有可能是32位数据也有可能是16位数据,第0个数据保存着屏幕上第0个像素点的颜色值。在FrameBuffer中每一块儿数据都是LCD屏的每一个像素点的颜色值是一 一对应的。对应应用程序讲,只需要将数据扔进FrameBuffer里就可以了。那么又是谁将FrameB原创 2021-03-31 23:03:30 · 178 阅读 · 0 评论 -
Linux进阶命令
find目的:查找符合条件的文件1)在哪些目录中查找2)查找的内容格式 : find 目录名 选项 查找条件举例:find /work/dira/ -name “test1.txt”说明:a) /work/dira/ 指明了查找的路径b) -name表明以名字来查找文件c)“test1.txt”,就指明查找名为test1.txt的文件同理 find /work/dira/ -name “.txt"查找指定目录下面所有以.txt结尾的文件,其中是原创 2021-03-24 15:55:37 · 85 阅读 · 2 评论 -
Vi编辑器的使用
Vi编辑器的配置cd /etc/vimcp vimrc ~/.vimrccd ~gedit .vimrc在.vimrc中加入以下内容"关闭兼容功能set nocompatible"显示行号set number"编辑时 backspace 键设置为2个空格set backspace=2"编辑时 tab 键设置为4个空格set tabstop=4"设置自动对齐为4个空格set shiftwidth=4"搜索时不区分大小写set ignorecase"搜索时高亮显示set h原创 2021-03-22 22:08:31 · 165 阅读 · 0 评论 -
Linux文件属性
在终端执行“ls -al”命令显示当前目录下的所有文件及文件夹的详细信息。文件属性:第一个字符表示文件类型第一个字符含义d目录-文件l链接文件b设备文件里可供存储的接口设备c设备文件里的串行端口设备,如鼠标、键盘等1、文件类型后边的9个字符以三个为一组。第一组表示 "文件所有者的权限“;第二组表示“用户组的权限”;第三组表示“其他非本用户组的权限”。每组都是rwx组合。2、连接数:表示有多少文件名连接到此节点。3、文件所有者:表示这个文原创 2021-03-21 19:03:14 · 93 阅读 · 2 评论 -
gcc的编译过程
1、程序编译4步骤一个.c文件变成一个可执行文件需要四个步骤,如下图所示:Note:选项功能-v查看gcc编译器的版本,显示gcc执行时的详细过程-o 指定输出文件名为file,这个名称不能跟源文件名同名-E只预处理,不会编译、汇编、链接-S只编译,不会汇编和链接-c编译和汇编,不会链接2 编译过程1、通过 gcc -E -o xxx.i xxx.c 只预处理、不编译、汇编、链接命令,查看.i文件可以知道预处理的工作是将头文件展开、将宏原创 2021-03-09 09:21:22 · 417 阅读 · 0 评论 -
搭建Windows版的GCC
1、windows版的gcc和arm-linux-gcc的相同点:Windows版的gcc和arm-linux-gcc的语法是类似的2、不同点arm-linux-gcc :给ARM芯片编译程序; gcc:在X86编译程序。3、 安装方法通过安装CodeBlocks来获得Windows版的gcc。CodeBlocks是一款基于GCC的Windows IDE.可以直接通过官网下载(下载的文件中一定要含有mingw这个文件才含有gcc)。也可以通过韦东山老师提供的git仓库去下载git clone h原创 2021-03-08 23:09:41 · 349 阅读 · 0 评论 -
嵌入式的概念及硬件组成
1 处理器的区分:MCU_MPU_AP1、组装一台计算机,需要的是CPU、硬盘、内存条,这是计算机的架构。对于年代较为靠前的微型计算机,我们把CPU通常称为MPU(微处理器单元)。由于现在的计算机CPU,性能较为强大,我们直接称为CPU,我们将这个理解为MPU的发展路线1。2、MPU的另外一条发展路线是将CPU、RAM、FLASH打包到一个芯片中,这个就被称作MCU(比如8051、STM32)。简化了电路设计。这些MCU也被称为单片机。3、时代继续发展我们有了苹果、平板、只用MCU搞不定了,因此AP(原创 2021-03-01 16:04:08 · 968 阅读 · 1 评论