自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 ubuntu安装界面太小点不到按钮解决办法

1、按住win+左键调整窗口。2、按住F7+Alt键调整。

2024-03-04 15:09:54 122

原创 知识笔记 -杂记

堆是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程 初始化的时候分配,运行过程中也可以向系统要额外的堆,但是记得用完了要还给操作系统,要不然就是内存泄漏。什么是栈:栈是线程独有的,保存其运行状态和局部自动变量的。栈在线程开始的时候初始化,每个线程的栈互相独立。每个函数都有自己的栈,栈被用来在函数之间传递参数。操作系统在切换线程的时候会自动的切换栈,就是切换SS/ESP寄存器。栈空间不需要在高级语言里面显式的分配和释放。

2023-12-13 15:50:45 393

原创 Linux-笔记 LCD驱动框架

3、Framebuffer简称fb,是一种通过将系统所有的与显存有关的软硬件结合起来虚拟成一个fb设备,并最终会生成一个名为/dev/fbX(X=0~n)的设备,应用程序直接访问这个设备来操作显存完成特定工作。4、Linux内核将所有的Framebuffer抽象成一个名为fb_info的结构体,该结构体包含了Framebuffer设备的所有属性和操作集,每一个Framebuffer都必须有一个fb_info结构体。1、Linux应用程序是通过操作显存来操作LCD的,比如在上面显示文字、图像等等。

2023-12-01 17:02:04 411

原创 Linux-笔记 内核input子系统

1、input子系统是用于管理输入的子系统,是linux内核为了处理某一类设备的一种框架,这一类设备就是输入设备。2、由于输入设备的种类有许许多多,不同的输入设备对应的输入信息不同,应用层中的处理方法也会有所不同,写驱动的时候只需要按要求上报输入事件。3、input子系统可以分为input驱动层、input核心层、input事件处理层,还要提供给用户空间访问的设备节点。

2023-11-28 16:25:38 1008

原创 Linux-笔记 内核MISC驱动

3、编写MISC驱动的核心就是初始化miscdevice结构体变量,使用misc_register函数向内核注册,卸载使用函数misc_deregister来卸载。2、MISC设备的主设备号固定为10,并且会自动创建cdev,MISC驱动是基于platform驱动框架的。1、MISC驱动属于字符驱动的一种,当某设备上的外设比较杂无法分类的时候可以使用MISC驱动进行开发。4、如果miscdevice中的minor设置为255就表示内核自动分配次设备号。

2023-11-24 20:22:43 404

原创 Linux-笔记 platform设备驱动

1、分离思想就是将linux驱动与设备分离开来。在现实开发过程中,一般的主机控制器驱动都由相应的半导体厂家编写,设备驱动也一般由设备器件厂家编写,我们开发只需要提供设备信息即可,这样就是将设备信息从设备驱动中分离出来,驱动使用标准方法去获取设备信息(可能从设备树),根据获取到设备信息去初始化设备,一般采用驱动-总线-设备的模式来实现驱动分离的模式。2、分层的思想类似于网络中的七层模型,不同的层负责不同的工作,驱动的分层也类似于此,借助分层的模型可以极大简化驱动编写。

2023-11-20 22:34:56 33

原创 Linux-笔记 Linux异步通知心得

1、软件层次上的中断,也叫软中断信号,软件层次上对中断机制的一种模拟。异步通知的核心就是信号,驱动程序向应用程序发送不同的信号来实现不同的功能。应用程序想要使用信号就要在应用程序中定义信号处理函数,就像使用中断一样。2、在应用程序中使用函数signal函数设置信号处理函数,原型为:sighandler_t signal(int signum,sighandler_t handler);3、信号处理函数为typedef void (*sighandler_t)(int);

2023-11-19 21:28:25 17

原创 Linux-笔记 Linux阻塞与非阻塞IO心得

1、阻塞:当需要的资源不可用的时候或不满足运行状态的时候就会挂起等待。2、非阻塞:当运行所需资源不可用的时候,轮询查询等待,也可能因为等待超时而放弃。3、非阻塞打开文件需要加上O_NONBLOCK。4、设备驱动文件默认读取方式是阻塞的。

2023-11-16 22:07:49 29

原创 Linux-笔记 Linux内核中断心得

1、先获取要使用中断对应的中断号。2、使用request_irq申请中断,此函数会激活中断,不用了就用free_irq。3、注册中断处理函数irqreturn_t (*irq_handler_t)(int, void*)。4、使能、禁止。

2023-11-13 20:16:21 45 1

原创 Linux-笔记 Linux内核定时器心得

3)del_timer函数:不管定时器激活否,都删除一个指定的定时器,但是要注意在多处理器系统,一个定时器可能会在其他处理器上运行,删除的时候需要等待其他处理器运行结束。4) del_timer_sync函数:同步版的del_timer,会等待其他处理器用完定时器再删除定时器,但是该函数不能用在中断上下文中。5、Linux内核定时器采用系统时钟来实现,提供超时时间(定时值)与定时处理函数就行,超时以后就会跳转到定时处理函数去执行,但需要注意的是超时后需要在处理函数中重新打开定时器。

2023-11-08 11:00:38 43 1

原创 Linux-笔记 Linux并发与竞争心得

1、并发:同一时间间隔内有多个 “用户” 对同一个共享资源进行访问,或可以理解为同一个实体在同一时间间隔内发生多个事件。2、竞争:并发的同时就会引起竞争。比如两个人同时对打印机发起打印请求,就会同时竞争“打印机”这个资源。3、Linux是个多任务操作系统,主要有多任务、中断、抢占、多核这些并发与竞争事件,竞争资源,所以要保护共享资源,防止并发访问共享资源。

2023-11-05 22:08:37 29

原创 Linux-笔记 嵌入式Linux pinctrl子系统与gpio子系统

1、主要功能:1)获取设备树中pin的信息2)根据获取到的pin信息设置pin的复用功3)根据获取到的pin信息设置电气特性。只需要在设备树中设置好某个pin的相关属性,其他工作由pinctrl子系统完成。2、如何配置。

2023-11-03 10:59:52 33

原创 Linux-笔记 嵌入式Linux之设备树总结

1、采用树型的结构描述设备,单片机驱动里面的设备信息都写在.c文件中,如果linux也这样,会导致内核臃肿,系统应该专注做系统该做的工作,对于设备等文件应该用一个文件(设备树文件)来管理。

2023-10-30 22:43:47 100

原创 Linux-笔记 新字符设备驱动总结

1、使用函数register_chrdev注册字符设备,会浪费很多的次设备号,而且主设备号还需要我们指定,不够智能。2、可以使用函数alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name)注册,该函数可以指定需要多少次设备号。并使用函数unregister_chrdev_region(dev_t from, unsigned count)卸载设备。

2023-10-26 20:39:46 23

原创 Linux-笔记 嵌入式Linux 操作寄存器开发总结

1、Linux驱动开发也可以实现操作寄存器来实现功能,但是没办法直接对寄存器的物理地址进行读写操作,但是可以通过MMU来实现。2、MMU:内存管理单元。老版本的Linux要求处理器必须带有MMU,常说STM32不能跑Linux是因为没有MMU,但是比较新的的H7系列其实是可以跑的,新版本的Linux已经可以不要求带有MMU。MMU主要的功能有: 1)实现虚拟地址到物理地址的映射 2)内存保护 等功能。在Linux中操作是虚拟地址,所以首先是拿到物理地址并将其转换成虚拟地址。

2023-10-24 16:12:10 72

原创 Linux笔记 - 嵌入式Linux-字符设备驱动开发初探

1、Linux之下一切皆文件,驱动设备的表现形式也是文件,具体存放在/dev/下,例如某lcd驱动设备文件=> /dev/lcd.2、驱动根据不同的驱动框架有不一样的编写方式,需要根据驱动框架来编写驱动程序,比如在编写字符设备驱动的时候,就需要重点编写出应用程序相对应的打开、关闭、读、写等函数。编写的时候还要考虑应用程序的开发便利性。3、字符设备驱动的编写主要就是驱动对应的open、close、read等函数,具体是实现file_operstions这个结构体里面是成员变量的实现。

2023-10-23 21:00:58 38

原创 Linux-笔记 Linux驱动开发初探及心得

1、Linux下驱动直接操作寄存器不现实2、要根据Linux下的各种驱动框架进行开发,一定要满足框架,要对Linux下的各种驱动框架有一定掌握。3、驱动最终表现是在/dev/xxx下的文件,Linux之下一切皆文件。涉及文件就有打开、关闭、读、写等操作。4、新内核支持设备树(.dts文件),该文件描述了板子的设备信息。不同设备有不同的信息,将这些信息写到设备树中,内核会分析设备树获得相关信息,相关的驱动和设备就会匹配。所以有设备树的情况下,第一件事就是在设备树中添加板。

2023-10-18 23:37:28 52 1

原创 Linux-笔记 - UTP: Waiting for device to appear(已解决)

最近使用mfgtool工具烧写linux开发板出现UTP: Waiting for device to appear,综合网上的方法这里做个记录,首先去到内核的目录,然后输入命令make menuconfig打开图形界面配置,配置如下,然后保存配置到xxx_defconfig,最后重新编译。完成以后先关闭图形界面,退出的时候会提示保持,保存以后再次打开图形界面,选择save保存,输入路径来保存到xxx_defconfig。

2023-10-10 16:31:59 323 1

原创 Linux笔记-linux内核各种镜像的区别

属于老版本的uboot所使用的Linux内核镜像文件,可在zImage的头部加一个64字节的信息(镜像文件的类型、加载位置、生成时间、大小等信息)而获得。属于Linxu内核镜像文件,是未经压缩的只包含可执行的二进制文件。通过objcope去除vmlinux的一些信息而得到。这是最原始的Linux内核镜像文件,是未经压缩的ELF格式的文件。属于经过gzip压缩的Linux内核镜像文件。

2023-10-07 16:48:20 126 1

原创 Linux笔记-no valid bmp image at 88000000(已解决)

最近学习移植NXP的uboot到开发板的SD卡来启动,后修改LCD驱动想显示图片信息发现uboot报错:no valid bmp image at 88000000,后通过查阅资料得出两个解决办法。修改以后reset重启一下即可显示。2)换一张SD移植。

2023-10-06 11:46:36 183 1

原创 Uboot ping不通虚拟机(校园网、无路由器情况) 排查笔记(已解决)

(这里就解决目前实际情况:校园网+无路由器,查阅资料了解到可以利用路由器实现ping通ubuntu,后续实验了再做笔记) 最近在学习到U-Boot中的ping命令时,遇到了一些问题这里记录一下解决方案,根据相关手册的说明,uboot想要ping通虚拟机(亦或是物理主机)是需要在同一个网段内,由于之前学习linux一直设置ubuntu的网络模式为NAT,并且身边在没有路由器的情况下,也就是开发板通过网口直接连接到电脑的情况,(电脑只有校园网提供网络服务),根据相关手册的设置,uboot始终pin

2023-09-23 11:54:06 391 1

原创 Linux笔记-ubuntu显示比例失衡

重置 主题 重置缩放比例。

2023-09-15 09:15:40 141

原创 Linux笔记-利用交叉编译器编译出能在ARM架构上运行的程序

注:-O指定以什么格式输出 -S表示不复制源文件内的重定位信息和符号 -g表示不复制源文件中的调试信息。3、格式转换:利用arm-linux-gnueabihf-objcopy将链接后的文件转换成bin格式。1、编译:利用交叉编译器arm-linux-gnueabihf-gcc编译我们的源文件。注:-g产生调式信息 -c编译源文件 -o指定编译产生的文件名称。2、链接:利用arm-linux-gnueabihf-ld链接编译后的文件。注:-Ttext指定链接地址 -o指定链接后文件的名称。

2023-09-14 18:28:00 582 1

原创 Linux笔记-bash默认环境下的特殊符号及其意义

{} 括号内的内容为命令区块的组合 () 括号内的内容为子shell的开始与结束 # 注释 \ 转义字符,比如将特殊字符通配符转义为一般字符 | 管道 ; 连续执行命令的分割符 ~ 当前登录后的家目录 $ 使用变量前要在变量前加这个符号 & 将指定命令(任务)转成后台运行 ' ' 单引号,内的内容为一般字符,不具备变量替换功能 " " 双引号,具备变量替换功能 ` ` 与$( )的功能

2023-08-03 17:20:58 40

原创 Linux笔记-bash默认环境下快捷键

ctrl+U:删除当前命令行的所有命令字符。ctrl+D:输入结束(EOF)ctrl+S:暂停当前屏幕的输出。ctrl+Q:恢复当前屏幕的输出。ctrl+C :终止目前命令。ctrl+Z:暂停当前目录。

2023-08-03 16:19:23 44

原创 linux笔记-重新挂载根目录

万一在/etc/fstab输入错误的信息导致无法开机,或者进入单人模式,可以输入:

2023-07-23 11:37:53 292

原创 学习笔记-Linux共享文件夹

打开/mnt/hgfs/,内部就是与win那边相通的,前提是按照了tools工具。

2023-07-10 15:20:16 32 1

原创 Linux中CPU的上下文切换

学习记录-linux中cpu上下文切换

2023-07-07 17:59:21 174 2

空空如也

空空如也

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

TA关注的人

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