- 博客(14)
- 资源 (24)
- 收藏
- 关注
原创 C语言构建环形缓冲区
它逻辑上是一个首尾相连的FIFO结构,具体实现上采用简单的线性数组。通过额外的辅助标志(head、tail)能很快知道队列的使用情况(是满还是为空)。正因为其简单高效的原因,甚至在硬件都实现了环形队列。环形队列广泛用于网络数据收发、程序间的大量数据交换(比如内核与应用程)、硬件接收大量数据。1、环形缓冲区原理环列队列逻辑上将数组元素array[0]与array[LEN-1]连接起来,形成一个存放队列的环形空间。实际操作中为了方便读写,采用head和tail分别指向可以读的位置和可以写的位置。环形
2021-08-29 00:02:10 6582 5
原创 一文搞懂getchar()和putchar()的奇怪现象
1、首先来看一个例子:#include <stdio.h>int main( ){ int c; c = getchar(); while (c != EOF){ putchar(); c= getchar(); } return 0;}这里主要解释下为什么要用int型来接受getchar函数。很多时候,我们会写这样的两行代码:char c;c = getchar();这样就很有可能出现问题。因为getchar函数除了返回终端输入的字符外,在遇到Ct
2021-08-28 21:08:50 2847
原创 如何根据栈信息确定函数调用过程
ARM架构下函数调用时的栈空间使用ARM架构下的寄存器用途:r0-r3 :用来传入函数参数或传出函数返回值。在子程序调用之间,可以将 r0-r3 用于任何用途。被调用函数在返回之前不必恢复 r0-r3。如果调用函数需要再次使用 r0-r3 的内容,则它必须保留这些内容。r4-r11 :被用来存放函数的局部变量。如果被调用函数使用了这些寄存器,它在返回之前必须恢复这些寄存器的值。r11 是栈帧指针 fp,指向调用函数的栈帧栈底。r12(ip) :内部过程调用寄存器 ,在过程调用之间,可以将它用于任
2021-08-27 23:55:45 769
原创 如何通过oops信息调试用户应用程序
参考文献:韦东山视频要解决的问题:在开发板上运行程序时,如果遇到段错误,提示信息仅仅如下提示:# ./test_fileSegmentation fault并没有像之前我们在调试内核驱动程序时那样,完整显示oops信息:Unable to handle kernel paging request at virtual address 56000050 //无法处理内核页面请求的虚拟地址56000050pgd = c3850000[56000050] *pgd=00000000
2021-08-27 00:04:52 310
原创 gdb+gdbserver调试详解
1、gdb+gdbserver总体介绍远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接。使用 GDB标准串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在。就目前而言,嵌入式Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:普通项目用ROM Monitor调试目标机程序用KGDB调试系统内核用gdbserver调试用户空间程序这三种
2021-08-26 00:16:14 5916
原创 rmmod:chdir(/lib/modules):No such file or directory
问题描述:当我们在使用较新的busybox版本(v1.17之后)时,发现在卸载模块的时候出现如下提示:解决办法:在根文件系统中建立相关目录:cd /libmkdir modulescd modulesmkdir 3.4.2 //此处根据你内核版本号确定目录名称好了,建立完以上两个目录后,再次执行模块卸载命令就能成功卸载了。...
2021-08-25 21:14:59 166
原创 rtc驱动分析
参考资料:韦东山第二期经典视频教程开发环境:JZ2440V3开发板+Linux3.4.2内核+gcc4.3.21、rtc内核驱动分析linux内核中的rtc驱动位于drivers/rtc下,里面有许多开发平台的RTC驱动,我们这里是以S3C24xx为主,所以它的RTC驱动为rtc-s3c.c1.1 ./drivers/rtc/rtc-s3c.c首先进入入口函数,里面注册了一个s3c24...
2021-08-15 10:28:21 338
原创 Linux内核rtc驱动分析
参考资料:韦东山第二期经典视频教程1、rtc内核驱动分析linux内核中的rtc驱动位于drivers/rtc下,里面有许多开发平台的RTC驱动,我们这里是以S3C24xx为主,所以它的RTC驱动为rtc-s3c.c1.1 ./drivers/rtc/rtc-s3c.c首先进入入口函数,里面注册了一个s3c2410-rtc的平台设备驱动,当内核匹配到s3c2410-rtc平台设备,就会调用.probe函数s3c_rtc+probe:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直
2021-08-15 10:23:13 746
原创 最全的IIC介绍及其设备驱动编写
参考资料:Linux2.6之IIC驱动_月月鸟呀的博客-CSDN博客Linux3.4.2之IIC驱动_月月鸟呀的博客-CSDN博客1、IIC介绍IIC是通信协议中的一种,为一主多从的结构,对于主从,所有的数据都是从主机这边发起,从机只能接受,不能主动引起数据传输,只有两条总线线路:一条串行数据线(SDA),一条串行时钟线(SCL),IIC有硬件IIC和软件IIC,这里简单解释,硬件IIC为硬件构成的IIC,一般只需要操作相关寄存器即可,对于软件IIC,可以由IO口来模拟IIC总线进行对IIC设备的通
2021-08-14 17:20:21 2705
原创 关于“字符设备注册函数”的总结
1、早期注册字符设备使用的函数int register_chrdev(unsigned int major, const char *name,const struct file_operations *fops);这个函数是linux版本2.4之前的注册方式,它的原理是:(1)确定一个主设备号(2)构造一个file_operations结构体, 然后放到chrdevs数组中(3)注册:register_chrdev然后当读写字符设备的时候,就会根据主设备号从chrdevs数组中取出相应的
2021-08-14 17:18:15 603
原创 C语言常见错误和技巧一文打尽
1、技巧类1.1 宏利用宏的替换,编写任意类型的交换函数#include <stdio.h> #define SWAP(t, a, b) \do \{ \ t c = a; \ a = b; \ b = c; \}while(0)int main( ){ int
2021-08-07 21:05:07 624
原创 LCD液晶屏驱动详解
开发环境:开发板:JZ2440V3CPU:samsunS3C2440内核:Linux3.4.2编译工具:arm-linux-gcc 4.3.2LCD:4.3存液晶屏AT043TN24参考文献:LCD驱动程序详细讲解(一)_weixin_33935505的博客-CSDN博客LCD驱动详解 - Lilto - 博客园 (cnblogs.com)主题:s3c2440移植l...
2021-08-02 21:49:44 15101
原创 Linux3.4.2的触摸屏驱动分析与编写
开发环境:开发板:JZ2440V3CPU:samsunS3C2440内核:Linux3.4.2编译工具:arm-linux-gcc 4.3.2LCD:4.3存液晶屏AT043TN24参考文献:2_触摸屏驱动程序之编写驱动 (100ask.net)触摸屏使用过程:触摸屏某点被按下,产生INT_TC中断;在中断处理程序中,打开定时器定时器时间到,启动ADC转...
2021-08-02 20:38:53 742
原创 USB原理及驱动框架介绍、编写
本文环境:JZ2440V3开发板Linux3.4.2内核arm-linux-gcc4.3.2编译器参考资料:2_USB驱动程序之USB总线驱动程序 (100ask.net)19.Linux-USB总线驱动分析 - 诺谦 - 博客园 (cnblogs.com)1、几个常见疑惑?为什么一插上就会有提示信息?是因为windows自带了USB总线驱动程序;那USB总线驱动程序是干嘛用的?识别USB设备;给USB设备找到并安装对应的驱动程序;提供USB的读写函数。.
2021-08-02 20:29:09 5683 1
该程序能求解n皇后问题,即在n*n方格棋盘上放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线
2023-02-09
信息系统项目管理师考试论文范文集
2022-03-04
软考高项考前必须要会做的百题精讲
2022-03-04
网络规划设计师历年真题09-19年.zip
2021-08-02
一百篇架构师论文范例(备考必备,备考必背!).rar
2021-08-02
2021年系统架构复习笔记(按章节).docx
2021-03-18
系统分析师核心考点归纳.pdf
2021-03-18
软考学习笔记(重要).docx
2021-03-18
自写嵌入式系统设计师考试笔记.doc
2020-07-28
历年真题12-18.zip
2020-07-28
RIO包-用于网络编程的健壮读写函数.md
2020-03-26
picgo_typora.zip
2020-03-25
一文教你如何构建静态链接库.md
2020-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人