![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
个人技术成长记录
文章平均质量分 80
Auv开心
这个作者很懒,什么都没留下…
展开
-
Ubuntu系统安装SourceInsight4.0安装后首次打开报错问题解决
安装步骤参考下文ubuntu16.04 最详细安装最新版source insight 4然后第一次打开的时候,遇到如下图的问题。原因:系统为中文会出现Unable to open or create …中文路径… .sidb参照网上修改regedit方法, 发现没用直接修改 ~/.wine/drive_c/users/server/我的文档 为 ~/.wine/drive_c/users/server/My Documents,见下图然后再重新打开,就能够正常打开了,见下图。...原创 2020-10-14 18:55:38 · 708 阅读 · 0 评论 -
基于双机械硬盘和一块固态硬盘安装ubuntu系统的硬盘挂载
一步一步安装 Ubuntu 操作系统步骤教程有很多帖子描述了,安装Ubuntu操作系统的详细步骤,见上面链接这里我来描述一个情况:电脑硬件有两块1TB的机械硬盘 + 一块 SSD固态硬盘 。如何挂载的问题根据提示执行安装,安装类型依次选择:其他选项–新建分区表–‘+’:efi系统分区:主分区:SSD硬盘:500MBswap分区(交换空间):主分区:SSD硬盘:16GB内存至少分配8GB(我分配的16GB)ext4分区:挂载点/:主分区:SSD硬盘:SSD内全部剩余空间ext4分区:挂载点原创 2020-09-09 09:50:18 · 4698 阅读 · 4 评论 -
linux内核等待队列机制编程框架—内核进程随时随地唤醒休眠
等待队列机制:让用户进程在内核空间随时随地休眠,随时随地被唤醒的一种机制#define init_waitqueue_head(q) \ do { \ static struct lock_class_key __key; \ \ __init_waitqueue_head((q), #q, &__key); \ } while (0)...原创 2020-09-06 17:39:18 · 336 阅读 · 0 评论 -
高通安卓平台BOARD-ID和MSM-ID
目录:kernel/msm4.14/Documentation/devicetree/bindings/arm/msm/board-id.txt 翻译如下传统格式The qcom,board-id entry specifies the MSM platform and subtype revision.It can optionally be an array of these to indicate multiple hardware that usethe same device t原创 2020-08-18 23:31:31 · 6346 阅读 · 1 评论 -
高通安卓屏幕点亮流程_LK阶段
aboot_init()原创 2020-08-13 23:14:23 · 576 阅读 · 0 评论 -
git repo入门操作学习笔记
这里写自定义目录标题git initgit init原创 2020-07-29 10:04:25 · 242 阅读 · 1 评论 -
linux内核同步机制编程框架
文章目录linux系统中出现并发与竞态相关概念:四种情形:linux内核解决竞态引起的异常的方法:即同步方法中断屏蔽概念特点中断屏蔽的编程步骤中断屏蔽相关宏函数应用实例自旋锁概念特点利用自旋锁同步的编程步骤信号量原子操作linux系统中出现并发与竞态相关概念:并发:多个执行单元(进程和中断)同时发生竞态:多个执行单元对共享资源的同时访问所形成的竞争的状态须具备以下三个条件:1. 必须有多个执行单元2. 必须有共享资源3. 必须同时访问共享资源:比如软件上的原创 2020-07-20 20:51:44 · 396 阅读 · 1 评论 -
优化与内存屏蔽
当使用优化的编译器时,千万不要认为指令会严格按照它们在源代码中出现的顺序执行。例如,编译器可能重新安排汇编语言指令让寄存器以最优的方式使用。此外,现代CPU通常并行地执行若干条指令,且可能重新安排内存访问。这种重新排序可以极大地加速程序的执行。然而,当处理同步时,必须避免指令重新排序。如果放在同步原语之后的一条指令在同步原语本身之前被执行,事情很快就会变得失控。事实上,所有的同步原语起到优化和内存屏蔽的作用。优化屏障(optimization barrier)原语保证编译程序不会混淆在原语操作之前的汇原创 2020-07-19 00:14:59 · 563 阅读 · 0 评论 -
linux内核软件定时器编程框架
文章目录linux 内核软件定时器简介:描述软件定时器的结构体timer_list软件定时器相关的配套函数linux 内核软件定时器简介:定时器是一种软件功能:即允许在将来的某个时刻,函数在给定的时间间隔用完时被调用。内核软件定时器特点:可以指定一个超时时间,一旦超时时间到期,内核就会调用定会器的超时处理函数,切记: linux 内核软件定时器基于软中断实现,所以其超时处理函数不能进行休眠操作。内核和进程广泛使用定时器。大多数设备驱动程序利用定时器检测反常情况,例如,软盘驱动程序使用定时器在原创 2020-07-17 20:49:59 · 475 阅读 · 1 评论 -
【跟着韦东山学习linux设备树】内核中device_node转换为platform_device的函数调用分析
内核中device_node转换为platform_device的函数调用分析of_platform_default_populate_init 函数调用过程1. start_kernel() 函数定义在init/main.c2. rest_init()函数定义在init/main.c3. kernel_init()4. kernel_init_freeable()5. do_basic_setup()6. do_initcalls()of_platform_default_populate_init函数生原创 2020-07-08 16:52:38 · 1000 阅读 · 1 评论 -
linux内核I2C驱动编程框架简析(一)
文章目录linux内核I2C驱动编程机制struct i2c_client定义如下struct i2c_board_infostruct i2c_driverI2C驱动跟前面介绍的linux内核驱动的platform机制一样,也是总线-设备-驱动模型。同样是使用内核的bus_type结构体定义了一个虚拟总线i2c_bus_type。bus_type结构体定义如下/** * struct bus_type - The bus type of the device * * @name: The na原创 2020-07-07 17:37:06 · 316 阅读 · 0 评论 -
系统管理总线(SMBus)介绍
SMBus介绍系统管理总线协议概要系统管理总线 关键标记表SMBus接口函数1. SMBus Quick Command2. SMBus接收字节函数:i2c_smbus_read_byte()3. SMBus发送字节函数:i2c_smbus_write_byte()4. SMBus读取字节函数:i2c_smbus_read_byte_data()5. SMBus读取字(两字节)函数:i2c_smbus_read_word_data()6. SMBus写字节函数:i2c_smbus_write_byte_原创 2020-07-07 00:20:34 · 14898 阅读 · 3 评论 -
【跟着韦东山学习linux设备树】dtb转换为device_node(unflatten)树状结构
跟着韦东山学习linux设备树—dtb转换为device_node树状结构引子函数调用过程1. start_kernel() 函数定义在init/main.c2. setup_arch()函数定义在arch/arm/kernel/setup.c3. arm_memblock_init()函数定义在arch/arm/mm/init.c3.1. 函数early_init_fdt_reserve_self();定义在drivers/of/fdt.c3.2. 函数early_init_dt_reserve_memo原创 2020-07-01 22:57:27 · 660 阅读 · 1 评论 -
linux设备树的平台信息认证之匹配过程简析
linux设备树的平台信息认证之匹配过程简析1. start_kernel() 函数定义在init/main.c2. setup_arch()函数定义在arch/arm/kernel/setup.c3. setup_machine_fdt()函数定义在arch/arm/kernel/devtree.c4. of_flat_dt_match_machine();//定义在drivers/of/ftd.c当使用compatible属性跟machine_desc中的dt_compat比较时,按照上述的优先级进行原创 2020-07-01 00:11:53 · 559 阅读 · 1 评论 -
【入门级别】linux内核驱动三种写法之——platform分离机制
【入门级别】linux内核驱动三种写法之——platform分离机制前言框架图实例代码遇到问题前言关于想追本溯源理清楚linux驱动的写法,前面已经写了三篇链接如下1.【入门级别】linux驱动的三种写法之前言——裸机程序2.【入门级别】linux驱动三种写法之——软硬件信息未分离(以字符设备驱动程序为例)3.字符设备驱动的简化版混杂设备驱动今天我们来学习下linux内核驱动的platform分离机制,关于这部分的理论知识,我在如下这一篇博文中有详细介绍,就不再赘述。linux platfor原创 2020-06-26 11:48:27 · 696 阅读 · 0 评论 -
字符设备驱动的简化版混杂设备驱动
我们在上一篇文章中聊的字符设备驱动的写法,参见linux驱动三种写法之——软硬件信息未分离(以字符设备驱动程序为例)混杂设备的说明如标题,内核提供了一种简化字符设备驱动的写法,是将主设备号固定为10,然后可以设置内核自动分配次设备号来区分设备个体,本质上还是字符设备,就是将上述链接中的字符设备驱动框架中的【设备号处理工作】和【字符设备对象的处理工作】打包在【混杂设备对象的处理工作】中了。字符设备驱动框架 与 混杂设备驱动框架 对比图看一下【字符设备驱动框架】和【混杂设备驱动框架】的差异就明白了原创 2020-06-24 01:15:11 · 296 阅读 · 1 评论 -
【入门级别】linux驱动的三种写法之前言——裸机程序
linux驱动的三种写法之前言——裸机程序引子软硬件平台裸板编程编程准备编程思路编译烧录及运行遇到问题及其解决引子最近想要系统地学习下linux 驱动程序的设备树的知识。韦东山老师提到驱动有如下三种写法:驱动写法优缺点1.将硬件信息写在驱动程序中简单,不易扩展,有硬件信息改动需要重新编译2.使用platform总线设备驱动模型将驱动程序软硬件信息分离稍复杂,易扩展,有冗余代码,有硬件信息改动需要重新编译3.使用设备树文件,驱动程序解析设备树文件,读取相关硬件信息稍原创 2020-06-17 03:51:00 · 991 阅读 · 1 评论 -
【入门级别】linux驱动三种写法之——软硬件信息未分离(以字符设备驱动程序为例)
上篇提到裸机程序,本文使用的硬件平台相同。详情见linux驱动的三种写法之前言——裸机程序前言今天我们来聊聊linux驱动程序应该是比较原始的写法,就是硬件驱动程序中的软件和硬件信息是写在同一个文件中的,虽然这样的写法看上去简单相对来说好理解,但是很不符合软件程序“低内聚,高耦合”的要求,特别是当硬件信息有变动的时候,比如硬件信息更改或者将驱动程序移植到其他平台上,就会发现工作量非常之大。最要命的是,即使更改一点硬件信息,都需要重新编译。基本上,我在工作上没有见过这样的驱动程序,应该是学习linux驱动原创 2020-06-23 03:33:32 · 450 阅读 · 0 评论 -
7/22-7/31工作学习总结
这里写自定义目录标题新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入新的改变我们对Markdown编辑器进行...原创 2019-07-31 11:38:58 · 287 阅读 · 1 评论