自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux gpio中断处理(九)

interrupt-parent说明中断控制器是GPIO1,interrupts说明中断号是IO18,中断类型是双边沿触发。ii)interrupt-parent、interrupts在设置中断的时候,这两个设备树信息成对出现。name:中断名字,设置以后可以在 /proc/interrupts文件中看到对应的中断名字。dev:如果中断设置为共享 (IRQF_SHARED)的话,此参数用来区分具体的中断。handler:中断处理函数,当中断发生以后就会执行此中断处理函数。b)申请中断,激活中断。

2024-04-24 09:55:05 168

原创 linux内核定时器(八)

假如HZ 为最大值1000 的时候,32 位的jiffies 只需要49.7 天就发生了绕回,对于64 位的jiffies 来说大概需要5.8 亿年才能绕回,因此jiffies_64 的绕回忽略不计。b)高节拍率会导致中断的产生更加频繁,频繁的中断会加剧系统的负担, 1000Hz和 100Hz的系统节拍率相比,系统要花费 10倍的“精力”去处理中断。a)高节拍率会提高系统时间精度,如果采用 100Hz的节拍率,时间精度就是 10ms,采用。间要求严格的函数来说,能够以更高的精度运行,时间测量也更加准确。

2024-04-24 09:04:15 188

原创 设备树完成LINUX蜂鸣器(七)

设备节点的方法见上一章描述,宏定义可以通过SNVS_TAMPER1直接 在/home/wyd/linux/kernel/arch/arm/boot/dts的imx6ul-pinfunc.h里面找就可以了。a)我们通过设置设备树的iomuxc的管脚,设置根节点下的外设节点,来完成设备树。b)设置完pinctrl设置后,设置外设节点,在/节点后面创建一个节点,只设置两个属性,1、首先我们要通过原理图,找到蜂鸣器对应的芯片管脚,打开原理图,搜索beep。insmod会响四次。

2024-04-18 15:13:19 153 1

原创 linux下pinctrl子系统和gpio子系统(六)

b) 通过查看/home/wyd/linux/kernel/arch/arm/boot/dts/imx6ul-pinfunc.h,可以分析出宏定义满足如下关系。a) 根据上一节内容,我们可以知道,在iomuxc节点下,又增加了imx6ul-evk子节点,在此子节点下,又增加了各个pinctrl子节点。c)找出与pinctrl相关联的设备节点文件。可以分析出来其他外设引用pinctrl需要配置的属性参数。

2024-04-16 13:56:26 104 1

原创 linux下设备树(五)

节点的属性信息里面保存了驱动所需要的内容,因此对于属性值的提取非常重要。1、 修改linuxDTS设备树文件,/arch/arm/boot/dts/imx6ull-alientek-emmc.dts。最终可以获取/arch/arm/boot/dts/imx6ull-alientek-emmc.dts设备树的ddd节点信息。#address-cells属性值决定了子节点 reg属性中地址信息所占用的字长 (32位 ),#size-cells属性值决定了子节点 reg属性中长度信息所占的字长 (32位 )

2024-04-15 22:59:36 350 3

原创 新的字符设备框架(四)

设备号、设备名字、设备操作、设备对应的文件。主要用了接口函数register_chrdev和unregister_chrdev函数。

2024-04-14 22:10:04 291 1

原创 linux字符设备驱动框架(三)

如果不修改,驱动指向内核与开发板内核不一致,就会导致insmod ko文件的时候失败。d)将chrdevbase.ko拷贝到nfs文件系统的/home/root文件夹下。e)重启开发板,会在home/root/下发现chrdevbase.ko文件。b)修改makefile,将KERNELDIR改为编译内核的文件夹路径。如果不加体系结构和编译器信息,就会出现如下问题,PIC错误。a)先将驱动文件拷贝到指定文件夹下。1、运行linux驱动程序用例。

2024-04-11 09:46:01 173 1

原创 imx6ull的ubantu环境设置(一)

网上教程很多,vmware16好像不用安装,因为我可以直接从windows拷贝文件到linux,所以就没有安装。c)把里面的内容都删掉,替换为下面的内容,我的是阿里云源。把交叉编译工具拷贝到linux指定文件夹。1、安装vmware虚拟机扩展工具。e)查看交叉编译器是否设置成功。2、设置linux的软件源。c)在最后一行导出环境变量。e)更新软件,可以不更新。3、设置交叉编译环境。

2024-04-10 11:14:21 201 1

原创 IMX6ULL uboot+zimage+rootfs的构建(二)

MMC: FSL_SDHC: 0, FSL_SDHC: 1 有两个MMC控制器,其中FSL_SDHC(0)接的 SD卡, FSL_SDHC(1)接的 EMMC。U-Boot 2016.03 (Apr 08 2024 - 15:53:08 +0800) uboot版本和编译时间。uboot编译主要需要三种命令。4、uboot的常用命令。

2024-04-08 17:09:46 567

原创 linux I2C驱动解析

我们裁剪内核I2C的时候,会有arch/arm/mach-davinci/board-da850-sdi.c报错。我们先看board-da850-sdi.cstatic __init void da850_evm_init(void){ i2c_add_driver(&cdce_driver); i2c_add_driver(&tfp_driver); i2c_register_board_info(1, da850_evm_i2c

2021-05-31 18:36:20 436 1

原创 裁剪内核I2C

清理内核make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean配置内核make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- da850_omapl138_tl_defconfig配置内核make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig选择把I2C的驱动的*去掉exit,保存内容编.

2021-05-14 15:31:56 142

原创 omapl138制作系统启动SD卡

1、安装Ubantu18.04 LTS 系统虚拟机,和vmware tools过程不赘述2、替换源su获取管理员权限cd /etc/aptmv sources.list sources.list.bakvi sources.listdeb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ bionic

2021-04-30 17:58:41 268

原创 VxWorks配置VxBusShow等PCI信息显示函数

vxworks_device_driver_developers_guide_vol1_6.6.pdf 4.3.4节

2021-03-01 15:26:10 666

原创 uboot过程分析(stage2)

/arch/arm/lib/board.cvoid board_init_f(ulong bootflag){ bd_t *bd; init_fnc_t **init_fnc_ptr; gd_t *id; ulong addr, addr_sp;#ifdef CONFIG_PRAM ulong reg;#endif bootstage_mark_name(BOOTSTAGE_ID_START_UBOOT_F, "board_init_f");/*不...

2021-01-14 17:29:42 402 1

原创 uboot过程分析(stage1)

uboot/arch/arm/cpu1、上电跳转start.s:_start: b resetM[4:0] 处理器模式 ARM模式可访问的寄存器 THUMB模式可访问的寄存器 0b10000 用户模式 PC,CPSR,R0~R14 PC,CPSR,R0~R7,LR,SP 0b10001 FIQ模式 PC,CPSR,SPSR_fiq,R14_fiq~R8_fiq,R0~R7 PC,CPSR,SPSR_fiq,LR_...

2020-12-24 18:02:26 220 2

原创 win10 + wdk + vs2019

下载和安装:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk通用教程:https://docs.microsoft.com/zh-tw/windows-hardware/drivers/gettingstarted/writing-a-very-small-kmdf--driver部署:ht...

2019-09-18 17:19:53 1349

原创 第三章 表、栈和队列(五)总结

注意事项:在做指针的时候一定要明确指向的内容,如list_entry需要某个变量的地址,那就定义一个结构体,指向的时候,指向这个结构体的地址。内核在做hash_list的时候就是这么做的。 代码最好具有通用性,list.h的代码插入任何结构体中,均可以保证结构体具有链表的属性和功能 表头很重要,有表头逻辑更清晰。有表头不用担心链表的第一项和最后一项的插入和删除,整体上方便的多。而且多数链表...

2019-06-15 13:58:06 92

原创 第三章 表、栈和队列(四)栈的实现以及平衡符号的实现

用list.h实现栈,编写平衡符号代码、后缀表达式代码,中缀和后缀表达式的转换。主要是对list.h的封装,list.h满足堆和队列的一切操作,stack是list的子集遇到的问题:typedef struct list_head *Stack;struct balance_char { char c; Stack s;};#define stack_en...

2019-06-15 11:59:21 207

原创 第三章 表、栈和队列(三)链表的实现和多项式的实现

github地址:https://github.com/wyd933/datastructure挖坑:关于基数排序我想到一个Hash列表处理的好方法,后面写用链表实现一个多项式的加法和乘法。内容介绍: 链表直接采用list.h的基本操作,并加以封装。主要是希望链表可以类似于继承的、面向对象程序的方式进行操作。这样做的好处就是,所有关于链表的操作均以一套API完成...

2019-06-13 20:16:24 226

原创 第三章 表、栈和队列(二)图解list.h

分解list.h普通链表部分,绘图链表,基本包含了双向链表的各种操作。定义struct list_head { struct list_head *next, *prev;};1、创建一个链表基本单元WRITE_ONCE本身是赋值操作,因为关系到存储对齐问题和CPU冲突问题,所以写法和应用层不同因为只考虑算法,可以认为是普通赋值,不做计较。以下三个代码功能一致。#d...

2019-06-06 21:29:13 190

原创 第三章 表、栈和队列(一)概念

本写作参考《数据结构与算法分析--C语言描述》,linux的list.h文件,以及数组和链表的一些理解目的如下:简要描述链表和数组为什么重要,具体主要是内存分配原因 绘图分析list.h的双向链表,来看看双向链表是如何拓展为栈和队列的 分析一下双向链表是如何面向对象的,为什么没写构造的函数1、链表和数组 链表和数组是对内存的两种分配方式,通常是这样:数组是一个...

2019-06-05 00:32:18 146

原创 从0拓展flask,逐步分析(二)

Flask Web开发基于python的web应用开发实战,感觉输出的后端不具备广泛意义的实用性,后来又浏览了python Web开发实战的(宏观介绍是不错的,其他的自己查资料),以及https://zhuanlan.zhihu.com/p/25038203的专栏,决定实现一个比较完善的后端内容。首先确定一个目标,以防跑偏目标:我要实现一个ngnix(反向代理+负载均衡) + uWSGI + ...

2019-05-12 08:24:32 124

原创 一(环境搭建)

准备重新写一下Flask代码,顺便整理下学习过程。1、去清华大学的镜像站下载ubantuhttps://mirror.tuna.tsinghua.edu.cn/#2、Vmware12.0安装Ubantu18.043、导入Vmware Tools,这样就可以windows和Ubantu完全交互了1)sudo passwd输入3次密码完成进入root模式2)...

2018-09-14 23:09:04 147

原创 数据结构与算法分析第一章引论

第一章引论引论中心思想:1、在合理的时间内能够处理较大的数据量,才是一个切合实际的算法。2、写出一个可以工作的程序并不够,如果在巨大数据集上运行,那么运行时间也成了重要问题。所以学习算法的目之一:对于大量的输入,估计程序的运行时间,在尚未 具体编码的情况下比较两个程序的运行时间。并且改进程序的速度,确定程序瓶颈的方法补:后面还会看到,如果输入量不大,而过多设计也是得不偿失...

2017-03-01 09:24:15 362

空空如也

空空如也

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

TA关注的人

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