![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 51
小甲鱼T
这个作者很懒,什么都没留下…
展开
-
Linux安装pycharm
4、进入/home/book/pycharm-community-2022.3.1/bin。Python程序和里面的文件要求在一个文件夹中。3、解压pycharm,解压就安装了。4、查看Python3安装的位置。5、在./pycharm.sh。5、在pycharm中配置环境。1、查看Python3的版本。7、直接运行Python程序。1、登录MObaXterm。2、安装Python3.6。一、pycharm安装。2、上传pycharm。二、Python安装。原创 2023-01-08 15:20:13 · 227 阅读 · 0 评论 -
Linux驱动程序的基础
使用poll 时,如果传入的超时时间不为0,这种访问方法也是阻塞的。使用poll 时,可以设置超时时间为0,这样即使没有数据它也会立刻返回,这就是非阻塞方式。概念:使用休眠-唤醒的方式等待某个事件发生时,有一个缺点:等待的时间可能 很久。比如调用read 读取按键时,如果没有按键数据则read 函数不会返回,它会让线程休眠等待。有2 个要素:时间、做事,换成程序员的话就是:超时时间、函数。概念:APP不休眠,驱动程序有数据时主动通知APP,APP 收到信号后执行信息处理函数。第五步,应用程序做事情。转载 2022-10-31 19:03:56 · 123 阅读 · 0 评论 -
Pinctrl与GPIO子系统
目录:一、Pinctrl子系统重要概念二、GPIO子系统重要概念三、基于GPIO子系统的LED驱动程序一、Pinctrl子系统重要概念引入设备树的概念以串口来举例:例子:imx6ull中的pinctrl:二、GPIO子系统重要概念举例:三、基于GPIO子系统的LED驱动程序顺序:图片见:16.3_基于GPIO子系统的LED驱动程序转载 2022-10-21 11:04:34 · 121 阅读 · 0 评论 -
Linux驱动_按键
这个__user是一个空的宏,放在这里表示用户态的buffer,在内核在驱动程序中不可以直接使用他,使用copy_to_user(buf,&level,1)来读它。poll方式:(针对休眠唤醒方式的缺点,出现了POLL机制,timeout时间过后,内核自己会把应用唤醒)注:应用程序打开驱动程序时,会传入一个标记:阻塞 、非阻塞(查询方式)、休眠、poll、异步通知。主设备号用来寻找驱动程序,次设备号(分辨哪一个按键)给我们使用的,自己想怎么使用就怎么使用。重要性:既是应用开发的基础,也是驱动开发的基础。转载 2022-10-20 23:06:25 · 162 阅读 · 0 评论 -
Linux驱动_驱动设计的思想(面向对象、设备树)
事实上,每一款芯片它的GPIO操作都是类似的,并且这跟主芯片相关,因此就可以针对该芯片写出比较通用的硬件操作代码。如果硬件很多,导致相对应的.c文件很多,造成内核臃肿。因此引入设备树,将硬件的设置文件不放在内核的.c文件中。先后比较1、2、3。如果1不行,就比较2,2不行就比较3.一般2、3用得比较多。一、Linux驱动_驱动设计的思想(面向对象_分层_分离)1、传统方法的缺点如下,于是引用了设备树,使用配置文件。四、LED模板驱动程序的改造_总线设备驱动模型。1、2、3、4部比较过程具体见文件说明。转载 2022-10-20 18:05:54 · 291 阅读 · 0 评论 -
驱动-IMX6ULL LED
如下图所示,在编译器中,编译器可能会自作聪明,只执行a=2。但在硬件中,不能这样,假如a=1为使灯亮,a=2为使灯灭。而在Linux系统中,驱动不是直接通过物理地址和硬件进行数据交换,而是通过映射虚拟地址和驱动进行交流。如下图步骤5还可以创建一个class,在class下游创建一个device ,步骤5为了让系统自动创建设备节点,但不是驱动的核心。如下图绿框所示,读取寄存器时,可以通过指针,直接将寄存器地址传给p,从而达到读取寄存器的目的。(3)、a&=~b的意思就是a=a&(~b)转载 2022-10-18 15:03:00 · 228 阅读 · 0 评论 -
嵌入式驱动开发(普适的GPIO操作方法)
你从GPIOx_DR 中读回的只是上次设置的值,它并不能反应引脚的真实电平,比如可能因为硬件故障导致该引脚跟地短路了,你通过设置GPIOx_DR 让它输出高电平并不会起效果。(4)、读GPIOx_DR 或GPIOx_PSR 得到某位的值(读GPIOx_DR 返回的是GPIOx_PSR 的值)(1)、设置CCM_CCGRx 寄存器中某位使能对应的GPIO 模块 // 默认是使能的,上图省略了。(1)、设置CCM_CCGRx 寄存器中某位使能对应的GPIO 模块 // 默认是使能的,上图省略了。转载 2022-10-17 16:21:43 · 405 阅读 · 0 评论 -
嵌入式驱动开发(普适的GPIO操作方法)
你从GPIOx_DR 中读回的只是上次设置的值,它并不能反应引脚的真实电平,比如可能因为硬件故障导致该引脚跟地短路了,你通过设置GPIOx_DR 让它输出高电平并不会起效果。(4)、读GPIOx_DR 或GPIOx_PSR 得到某位的值(读GPIOx_DR 返回的是GPIOx_PSR 的值)(1)、设置CCM_CCGRx 寄存器中某位使能对应的GPIO 模块 // 默认是使能的,上图省略了。(1)、设置CCM_CCGRx 寄存器中某位使能对应的GPIO 模块 // 默认是使能的,上图省略了。转载 2022-10-17 16:06:12 · 342 阅读 · 0 评论 -
驱动开发(hello驱动程序)
④ 把file_operations结构体告诉内核(根据主设备号在chrdevs[]“数组”中找到file_operations结构体),注册驱动程序:register_chrdev(major, 有个参数代表结构体)。"major"部分可以自己指定主设备号,也可以传入0,让内核给驱动程序分配主设备号;③ 实现对应的drv_open/drv_read/drv_write等函数,填入file_operations结构体。得有一个入口函数:安装驱动程序时,就会去调用这个入口函数。2、怎么编写驱动程序。原创 2022-10-15 20:57:53 · 486 阅读 · 0 评论 -
2022.09.27嵌入式Linux应用开发基础知识(韦东山补充笔记
对于“”的,搜索当前目录;对于的,搜索下面黄底的目录。三、交叉编译程序_以freetype为例。4、使用freetype显示单个文字。5、使用freetype显示一行文字。一、ASCLL字符的点阵显示。3、交叉编译程序的万能命令。二、中文字符的点阵显示。2、屏幕中显示一个汉字。转载 2022-09-27 23:21:40 · 114 阅读 · 0 评论 -
2022.09.26嵌入式Linux应用开发基础知识(韦东山补充笔记
UNICODE 仍然向下兼容ASCII,但是对于其他字符会有对应的数值,比如对于“中”、“笢”,它们的数值分别是:0x4e2d、0x7b22UNICODE 中的数值范围是0x0000 至0x10FFFF,有1,114,111 即100 多万个数值,可以表示100 多万个字符,足够地球人使用了。Framebuffer中保存着一帧图像的每一个像素颜色值,假设LCD的分辨率是1024x768,每一个像素的颜色用32位来表示,那Framebuffer的大小就是:1024x768x32/8=3145728字节。转载 2022-09-26 23:23:21 · 250 阅读 · 0 评论 -
2022.09.25嵌入式Linux应用开发基础知识(韦东山补充笔记)
如上面6.常用的编译方法中,虽然在test2中用-L、-l指定了链接的库,但是这不是运行时的库,运行和链接是两个不同的概念,因区别对待。下面这种直接编辑clean的操作是不正确的,如下面图2所示,当创建一个clean 的文件时,就不会执行“clean”的操作。一般情况下,我们常说的编译包括:预处理、编译(代码错误是在此阶段发现的)、汇编三部分,有时候又包括:预处理、编译、汇编、链接四部分。2、在编译的时候加上- v 他会列出去查找编译时候的步骤,如:gcc -c -o main.o main.c -v。转载 2022-09-25 17:44:28 · 548 阅读 · 0 评论 -
IMX6ULL_Pro开发板基本操作(韦东山学习笔记)
1、配置编译:内核、设备树、其他驱动程序。为什么编译驱动程序之前要先编译内核?IMX6ULL_Pro烧写系统。3、编译、测试第1个驱动。转载 2022-09-23 16:11:19 · 362 阅读 · 0 评论 -
Ubuntu基本操作
Shell 的意思是“外壳”,在 Linux 中它是一个程序,比如/bin/sh、/bin/bash 等。它负责接收用户的输入,根据用户的输入找到其他程序并运行。比如我们输入“ls”并回车时,shell 程序找到“ls”程序并运行,把结果打印出来。将4号分区挂载到home目录下,那么一号分区中home不可见,当访问home文件时就是在访问sda4。在文件中创建dn.txt文件,并在dn.txt中写入内容233 echo 233->dn。dev:设备 sd:磁盘 a:第一个磁盘 4:4号分区。转载 2022-09-21 19:28:13 · 117 阅读 · 0 评论