![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 86
Croxd
这个作者很懒,什么都没留下…
展开
-
linux下的自旋锁、信号量、互斥、完成量
linux下的竞态和并发都是比较容易发生的,原子操作只能针对整数进行,因此互斥和自旋锁也就被时常用来保护临界资源以解决竞态和并发的问题。在进程上下文中,保持时间长的情况可以用互斥体,因为可以睡眠,保持时间短的可以用自旋锁,减少上下文的切换时间。中断上下文中可以用自旋锁,不能用互斥体,因为可能会睡眠。但是中断上下文获取自旋锁之前要先禁用本地中断,防止中断嵌套。有自旋锁的代码不能睡眠,并且不能用在递归,否则会引起死锁。原创 2022-08-23 19:36:42 · 490 阅读 · 0 评论 -
我所理解liunx下的原子操作
原子操作就是要么不执行,一旦执行就会执行完成,是不可被打断的一个,或一系列的动作,即在完成任务前不会被其他事件所打断,就像原子不可被分割成颗粒一样。单处理中,可以用单条指令完成的指令可以被看成是一个原子操作。软件中的原子操作依赖于硬件原子操作的支持。当然原子操作,也可以当引用计数使用。......原创 2022-08-05 17:19:31 · 422 阅读 · 0 评论 -
7862之uboot-lcd的流程及移植
从开机过程中LCD初始化的流程,来分析LCD的驱动架构。在开机的时候首先进行板级的初始化(U-boot/arch/arm/lib/board.c),现在flash中跑board_init_f(),划分一部分Mermory用来跑U-BOOT,划定范围之外的Mermory在U-boot的时候是不能被操作的。同时预留给malloc() arena、U-Boot code, data & bss、VFD display、LCDdisplay、TLB table、PRam、logBuffer等空间。接原创 2022-05-07 16:29:35 · 1284 阅读 · 0 评论 -
linux下的中断
什么是中断:中断是指在CPU正常运行期间,由内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,保存当前状态,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去,恢复之前的状态,继续运行被暂时中断的程序。Linux中通常分为外部中断(又叫硬件中断、异步中断)和内部中断(又叫异常)中断又分为顶半部和底半部:中断会打断进程正常的调度和运行,然而中断又往往比较耗时,与系统实时性不相符。所以linux内核将中断分为了顶半部和底半部,(上半部)来解决耗时的问题的来提高系原创 2022-04-27 16:00:00 · 1250 阅读 · 0 评论 -
arm汇编指令记
指令:cpu机器指令的助记符。如 mov 指令,会通过汇编器,解码成机器码(如:00011111),电脑只能识别机器码去执行。而指令就是方便我们记忆的这串机器码的的具体含义。伪指令:本质上不是指令,而是编译环境提供的,是用来指导编译过程。arm有8种寻址方式:寄存器寻址: mov r2,r3 //相当于c中的 r2 = r3,把寄存器 r3 的值赋值给 r2立即寻址: ...原创 2021-03-19 15:29:47 · 1126 阅读 · 0 评论 -
Linux下 TP(触摸屏)驱动的框架分析
static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id *id){ s32 ret = -1; struct goodix_ts_data *ts; u16 version_info; struct pinctrl *nwt_pinctrl = NULL; struct pinctrl_state *set_upstate; GTP_DEBUG_FUN.原创 2021-03-16 20:17:47 · 4665 阅读 · 0 评论 -
linux内存中静态区、栈、堆间的区别
静态区:保存自动全局变量和 static 变量(包括 static 全局和局部变量)。静态区的内容在总个程序的生命周期内都存在,由编译器在编译的时候分配。stack是栈:保存局部变量,其空间是由操作系统自动分配释放。栈上的内容只在函数的范围内存在,程序运行过程中函数调用时参数的传递也在栈上进行,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但空间大小有限。当然栈也有动态分配,由 ...原创 2020-10-13 16:25:06 · 550 阅读 · 0 评论 -
海思3536板子在使用wifi时,开启支持工具 wireless_tools 和 iptables 的内核支持选项时,板子会崩溃的解决方法
wifi的wlan模式需要用到Wireless_tools和wpa_supplicant工具。Wireless_tools用来设置支持LinuxWireless Extension的无线设备,它是一个工具,来使用wifi的功能和修改获取一些参数,不用重启驱动或Linux就能改变参数。wifi的AP热点以nat方式连接到网络,需要用到iptables这个工具来实现网卡的网络转发代理上网的功能,让...原创 2020-04-30 10:10:30 · 574 阅读 · 0 评论 -
Vmware虚拟机Ubuntu下,命令完成磁盘的扩容
一般我们在使用虚拟机时,用着用着磁盘就不够用,这时候我们只能进行虚拟硬盘容量的扩容操作。1、关闭虚拟机,打开Vmware的启动页面,点击:编辑虚拟内存设置。2、点击:硬盘,再点击:扩展。3、改成你想要扩展的数值的大小,再点击扩展,保存所设置的内容。4、在配置完成后,启动Ubuntu(因为要重新添加分区、格式化分区、挂载后才可以使用)。5、添加分区:在shell终端输...原创 2019-06-05 22:35:48 · 4157 阅读 · 1 评论 -
Linux下shell脚本:bash的介绍和使用(详细)
Shell:一般我们是用图形界面和命令去控制计算机,真正能够控制计算机硬件(CPU、内存、显示器等)的只有操作系统内核(Kernel),由于安全、复杂、繁琐等原因,用户不能直接接触内核,需要另外再开发一个程序,让用户直接使用这个程序;该程序的作用就是接收用户的操作(点击图标、输入命令),并进行简单的处理,然后再传递给内核,内核和用户之间就多了一层“中间代理”,Shell 其实就是一种脚本语言,也是...原创 2019-03-15 22:07:04 · 65918 阅读 · 2 评论