- 博客(253)
- 资源 (17)
- 收藏
- 关注
原创 Linux第91步_了解“platform总线,platform驱动和platform设备”,以及驱动框架和设备框架
plattorm是为了驱动的分离与分层而提出来的一种框架,其驱动的具体实现还是需要字符设备驱动、块设备驱动或网络设备驱动。对于一个完整的驱动程序,必须提供“有设备树”和“无设备树”两种匹配方法。
2024-04-17 16:08:14 388 2
原创 Linux第88步_非阻塞IO实验
非阻塞IO是“应用程序”对“驱动设备”进行操作,若不能获取到设备资源,则非阻塞IO应用程序的线程不会被“挂起”,即线程不进入休眠,而是一直“轮询”,直到获取到设备资源为止,或者直接放弃。
2024-04-10 10:50:46 468
原创 Linux第87步_阻塞IO实验
阻塞IO是“应用程序”对“驱动设备”进行操作,若不能获取到设备资源,则阻塞IO应用程序的线程会被“挂起”,直到获取到设备资源为止。
2024-04-10 10:31:21 461
原创 Linux第83步_采用“Linux内核定时器”点灯以及相关API函数
“Linux内核定时器”是采用“系统时钟”来实现的。它不是周期性运行的,一旦发生超时就会自动关闭。如果想要实现周期性定时,那么就需要在定时处理函数中重新开启定时器。
2024-03-23 17:19:23 511
原创 Linux第82步_“gpio子系统”下的使用KEY开关灯
“gpio子系统”下的使用KEY开关灯 ,进一步熟悉使用新字符设备驱动的一般模板和“gpio子系统”,以及设备树,驱动KEY和LED。
2024-03-21 21:52:06 535
原创 Linux第79步_使用自旋锁保护某个全局变量来实现“互斥访问”共享资源
使用变量“dev_stats”来表示“共享资源的使用标志”;“dev_stats > 0”,表示共享资源已经被使用,而“dev_stats = 0”表示允许使用共享资源。因此,真正实现设备互斥访问的是变量“dev_stats”,我们用自旋锁对“dev_stats”来做保护,就可以实现“互斥访问”共享资源。
2024-03-16 19:36:09 1060
原创 Linux第78步_使用原子整型操作来实现“互斥访问”共享资源
使用原子操作来实现“互斥访问”LED灯设备,目的是每次只允许一个应用程序使用LED灯。
2024-03-16 19:29:10 709
原创 Linux第77步_处理Linux并发的相关函数
了解linux中的“原子整形数据”操作、“原子位数据”操作、自旋锁、读写锁、顺序锁、信号量和互斥体,以及相关函数。
2024-03-14 14:52:35 584
原创 Linux第76步_“gpio子系统”下的LED驱动
使用新字符设备驱动的一般模板和“gpio子系统”,以及设备树,驱动LED。gpio子系统下的点灯,才是我们要掌握的字符驱动开发方法。
2024-03-11 20:28:12 784
原创 Linux第71步_将linux中的多个文件编译成一个驱动模块
采用旧字符设备测试linux系统点灯,进一步熟悉其设计原理。采用多文件参与编译,深度学习编写Makefile,有利于实现驱动模块化设计。
2024-03-06 21:28:29 818
原创 Linux第70步_新字符设备驱动的一般模板
上面定义为“/home/zgq/linux/atk-mp1/linux/my_linux/linux-5.4.31”,即“指定的工作目录”上面定义为“/home/zgq/linux/atk-mp1/linux/my_linux/linux-5.4.31”,即“指定的工作目录”输出KERNELDIR的值为“/home/zgq/linux/atk-mp1/linux/linux-5.4.31”即切换到“/home/zgq/linux/atk-mp1/linux/my_linux/linux-5.4.31”。
2024-03-05 10:02:04 968
原创 Linux第68步_旧字符设备驱动的一般模板
“KERNELDIR”上面定义为“/home/zgq/linux/atk-mp1/linux/my_linux/linux-5.4.31”,即“指定的工作目录”#“KERNELDIR”上面定义为“/home/zgq/linux/atk-mp1/linux/my_linux/linux-5.4.31”,即“指定的工作目录”#“KERNELDIR”上面定义为“/home/zgq/linux/atk-mp1/linux/my_linux/linux-5.4.31”,即“指定的工作目录”
2024-03-03 12:02:18 755
原创 解决AD16导出CAD文件时出现“没有注册类” 之问题
首先找到AD16的安装路径。如:“C:\Program Files (x86)\Altium\AD16\System\Installation\”目录。然后找到“TeighaX_Setup_3.9.0”,双击安装即可。AD16导出DWG或DXF文件时,出现“没有注册类”。困扰了很久,终于解决了。
2024-03-01 10:01:24 327
原创 Linux第66步_linux字符设备驱动_挂载和卸载
linux字符设备驱动_挂载和卸载。为了测试KERNELDIR,CURRENT_PATH和MAKE的值,修改了Makefile,重点学习Makefile;KERNELDIR为“/home/zgq/linux/atk-mp1/linux/my_linux/linux-5.4.31”;CURRENT_PATH为“/home/zgq/linux/Linux Drivers/00_My_TestDriver”;MAKE的值为make
2024-02-25 20:31:16 886 3
原创 Linux第64步_编译移植好的虚拟机文件
这是一个非常完美的总结,只有真正参与整个系统移植,才能得到这个结论。每种开饭板的目录可能不一样,但大概流程是这样的。希望最好能参与移植,才能懂得其中的奥秘。
2024-02-23 16:21:57 673
原创 Linux第63步_为新创建的虚拟机添加必要的目录和安装支持linux系统移植的软件
在新创建的虚拟机中·,添加必要的目录和安装支持linux系统移植的软件。
2024-02-22 21:33:08 876 1
原创 Linux第61步_“buildroot”构建根文件系统第3步_烧写根文件系统到EMMC中_并完善开发板配置
学习Linux第61步,就是烧写根文件系统到EMMC中,并完善开发板配置,至此根文件系统学习完了,后面要学习linux驱动开发。
2024-02-18 20:55:23 857
原创 Linux第60步_“buildroot”构建根文件系统第2步_配置“buildroot下的busybox”并测试“buildroot”生成的根文件系统
学习Linux第60步,就是配置“buildroot下的busybox”,然后测试“buildroot”生成的根文件系统
2024-02-18 20:35:59 750
原创 Linux第59步_“buildroot”构建根文件系统第1步_生成rootfs.tar和rootfs.ext4以及通过nfs下载测试
学习Linux第59步,就是安装“buildroot”,通过配置构建根文件系统,编译生成rootfs.tar和rootfs.ext4,以及通过nfs下载测试。
2024-02-17 17:45:52 1098
原创 Linux第57步_“linux系统镜像”和“根文件系统”重新打包小结
学习Linux第57步,就是要做好实时总结,这是“linux系统镜像”和“根文件系统”重新打包小结
2024-02-15 12:57:59 618
普冉开发板原理图和数据手册
2023-08-28
STM32F103之CAN通讯测试
2023-07-09
STM32F103移植uC-OSII工程模板
2023-06-23
STM32F103移植uC-OSIII工程模板
2023-06-23
《1-uC-OSII-任务挂起-恢复-删除-例程》
2023-06-05
uCOSii-任务管理
2023-05-23
《PIC单片机CCS-C编译器参考手册》
2023-05-02
STM8S207RB带uCOSII系统
2023-01-29
STM32芯片驱动AD5412或AD5416程序及其电路图
2022-07-26
使用串口4测试栈溢出,支持FreeRTOS,4个任务,1个定时器和RTC
2022-07-15
GD32107C_EVAL_Demo_Suites_FreeRTOS_TCPIP.rar
2021-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人