- 博客(26)
- 资源 (27)
- 收藏
- 关注
转载 【深入理解IOCTL】
深入理解IOCTL一、 什么是ioctlioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:int ioctl(int fd, ind cmd, …);其中fd就是用户程序打开设备时使用open函数返回的文件标示符,cmd就是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,有或没有是和cmd的意义相关的。ioctl函数是文件结构中的一个属性分量,就是说
2022-02-08 15:09:35 2741
原创 open和fopen的区别
1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操作外存的次数就少,执行速度就快、效率高。一般来说,文件“缓冲区”的大小随机器 而定。2.非缓冲文件系统缓冲文件系统是借助文件结构体指针来..
2022-01-27 15:56:59 356
原创 国密SM2公钥点压缩解压C源码
国密算法目前在金融方面应用的越来越多,因为其效率比RSA算法更高,所以备受青睐。具体的算法介绍可以参见国密算法介绍文档。该算法是基于ECC算法基础之上,采用推荐的曲线参数ECC256,SM2曲线采用的是y2 = x3 + ax + b,其中a,b就是曲线参数。struct FPECC Ecc256={"FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF", //p"FFFFFFFEFFFFFFFFFFFFFF
2020-06-06 10:47:42 3836 2
转载 Android 8.1 源码_启动篇(二) -- 研究 zygote
Android 8.1 源码_启动篇(二) -- 深入研究 zygote前言在Android中,zygote是整个系统创建新进程的核心进程。zygote进程在内部会先启动Dalvik虚拟机,继而加载一些必要的系统资源和系统类,最后进入一种监听状态。在之后的运作中,当其他系统模块(比如 AMS)希望创建新进程时,只需向zygote进程发出请求,zygote进程监听到该请求后,会相应地fork...
2019-03-07 15:04:23 601
转载 Android 8.1 源码_启动篇(一) -- 深入研究 init
Android 8.1 源码_启动篇(一) -- 深入研究 init前言init进程,它是一个由内核启动的用户级进程,当Linux内核启动之后,运行的第一个进程是init,这个进程是一个守护进程,确切的说,它是Linux系统中用户控件的第一个进程,所以它的进程号是1。它的生命周期贯穿整个linux 内核运行的始终, linux中所有其它的进程的共同始祖均为init进程。开篇核心源码...
2019-03-06 18:02:02 789
转载 嵌入式基于Flash上的文件系统
在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。那么对于这几个文件系统,如何选择一个针对自己的硬件最合适的呢?他们各自的特点是什么?性能优劣如何? ...
2019-02-13 12:04:43 4166
原创 python使用lxml库爬取短视频
Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 目前python的开发越来越广泛,设计到web、后端、桌面应用程序、软件开发、科学统计等方面。其广泛性、灵活性、移植性、易读性、简单性等特点越来越收欢迎。在大数据时代,我们...
2019-01-21 15:44:05 738
原创 C语言 红黑树插入/删除/查找/遍历
1 红黑树介绍红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。除了具备该特性之外,红黑树还包括许多额外的信息。红黑树的每个节点上都有存储位表示节点的颜色,颜色是红(Red)或黑(Black)。红黑树的特性:(1) 每个节...
2018-12-14 18:31:04 5485
原创 C语言 AVL平衡二叉查找树 插入/删除/遍历/查找
AVl树:平衡二叉查找树,树中任何节点的两个子树的高度最大差别为1。如下图所示AVL树的查找、插入和删除在平均和最坏情况下都是O(logn)。如果在AVL树中插入或删除节点后,使得高度之差大于1。此时,AVL树的平衡状态就被破坏,它就不再是一棵二叉树;为了让它重新维持在一个平衡状态,就需要对其进行旋转处理。1. AVL树的结构 typedef struct AVLTreeN...
2018-12-13 17:32:20 1505 2
原创 C语言 双链表 插入/删除/查找/遍历/递归/合并/排序
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。1 双链表数据结构1.1 新增节点图解1.2 删除一个节点图解2 双链表操作 双链表和单链表在操作主要区别在于插入和删除,双链表需要修改...
2018-12-12 18:29:46 2446
原创 C语言 单链表 插入/删除/查找/遍历/递归/合并/排序
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。1 链表结构 2 链表操作 链表操作难度不大,只要我们熟悉其数据结构,说白了就是操作指针。下面附上我对单链表的相关...
2018-12-12 14:34:41 3272
原创 andriod进入adb shell
1 adb环境配置 下载好andriod studio后,安装完成后,需要下载adb-driver和adb-tools,然后安装adb-tools,安装完成后可以在工具里面查看sdk安装位置具体在 andriod studio tool->SDK manager 里面查看。 我们把具体的环境路径配置到我们电脑的环境变量里面去,例如我的adb 安装路径是C:\Use...
2018-12-03 17:00:43 800
原创 嵌入式软件架构设计
摘要在开发中一直觉得好的软件架构可以做到事半功倍,而且可以做到代码复用和移植。但是如果没有架构或者说架构很差,那么移植将是很痛苦的事,特别是对不熟悉改功能的人来讲还不如自己写呢,移植不对那将是很头疼的事。所以随着开发越来越多,渐渐的发现我们考虑问题应该从广度和深度来考虑,做新项目的时候,更应该考虑到以后出现的可能性,比如说需求变更,底层变更,所以这个时候软件的架构和程序模块化就很重要。...
2018-08-31 11:49:26 18399 7
原创 c++ 深入理解虚函数和多态原理
c++ 深入理解虚函数为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题?面向对象的三大特征:封装 多态 继承普通虚函数 虚析构函数 纯虚函数 抽象类 接口类 隐藏 vs 覆盖 隐藏与覆盖之间的关系 早绑定和晚绑定 虚函数表什么是多态?相同对象收到不同消息或不同对象收到相同消息时产生的不同的动作。静态多态 vs 动态多态[-:>静态多态也...
2018-07-30 14:24:25 520
原创 国密系列算法简介
众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)那等等。其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现。其中SM1、SM7算法不公开,调用该...
2018-06-14 17:12:41 5410 3
转载 stm32f10x.h 头文件解析
#ifndef __STM32F10x_H//如果没有定义__STM32F10x_H ,则定义__STM32F10x_H #define __STM32F10x_H#ifdef __cplusplus// extern "C" {#endif 这里是一种条件编译。extern "C"指令非常有用,因为C和C++的近亲关系。注意:extern "C"
2017-11-07 17:47:26 5576
原创 关于stm32f030增加bootloader后外部中断不响应的问题
问题描述: 最近在调试stm32f030芯片,增加bootloader后,可以正常跳转到应用程序,程序能够正常跑起来,但是却不进DMA中断,外部中断无法响应,这个问题找了好久....源码:void NVIC_Configuration(void){ uint32_t i = 0; /* Relocate by software the vector table t
2017-06-08 18:36:19 4016 1
转载 stm32 RTC时钟配置
stm32——RTC实时时钟一、关于时间 2038年问题 在计算机应用上,2038年问题可能会导致某些软件在2038年无法正常工作。所有使用UNIX时间表示时间的程序都将将受其影响,因为它们以自1970年1月1日经过的秒数(忽略闰秒)来表示时间。这种时间表示法在类Unix(Unix-like)操作系统上是一个标准,并会影响以其C编程语言开发给其他大部份操作系统使用的软件
2017-03-15 16:03:29 8727
原创 linux 关于线程创建的总结
linux中创建线程要比windows创建系统简单些,至少从参数上将少很多int pthread_create((pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)参数thread:线程idattr: 线程属性设置第三个参数:线程处理函数arg:
2017-01-16 14:10:13 1485
原创 linux c 关于文件目录操作的总结
这篇文章主要是关于文件目录的相关操作,在linux平台下也是经常用到的一个操作,所以这篇文章应该先于上一篇关于文件的操作,一般我们创建文件夹后,才会进行关于文件的一些操作。提示一点创建目录时候,这能一级一级的创建不能创建多级,如若创建多级,则需要循环创建。这里先介绍一下关于当前工作路径的问题,一般我们都是在某一个目录下进行文件或者文件夹的操作,但是一旦我们对文件进行夸目录操作后,可能不
2017-01-16 11:39:41 943
原创 linux c 关于文件操作的编程总结
最近由于项目需要,一直在做关于linux环境下的服务端的开发,因此必不可少的就会有文件操作,线程,通信等这方面的一些积累和总结。1、文件的读写操作fopen,fseek,fread,fwrite,fclose等文件的读写作为最基本的操作,是我们必须要熟练的基本技能,因此对于文件读写的一些基本函数的使用也必须熟练使用。我们要完成文件的操作就必须要用到文件指针FILE* fp,下面
2017-01-16 10:34:12 570
原创 linux环境下使用eclipse编译器编写C程序时候遇到的问题以及解决方法总结
最近在linux环境使用eclipse编辑器进行服务器端程序的编写,由于是新手所以在使用过程中,遇到一些问题,并解决后做了如下的记录。本人也会一直记录下去,希望也能供大家参考。1. Type xxx is not be resolved 出现该问题是,首先对工程进行clean,然后其次检测jdk版本是否有要求,如果还不能解决问题,点击工程属性properties,然后选
2016-12-28 14:31:19 748
原创 centos或者ubuntu中关于.vimrc的配置
.vimrc文件类似于小番茄一样对我们的编程有极大的帮助,但是如何配置呢; .vimrc文件位于/root目录下(普通用户模式下也有该文件),所以我们必须是以管理员身份去配置它,首先我们检查vim有没有安装,如果没有安装,那么我们需要先安装 vim。然后等安装完毕后,我们可以导入别人配置好的.vimrc或者自己配置都可以,剩下的配置都比较简单了,如下所示: 1 """""""""""
2016-10-14 15:21:21 2549
转载 Linux vi常用命令大全
初学Linux时, 我们接触最多的就是Linux操作系统中的各种命令了。vi是我们在Linux中最常用的编程工具,所以下面的这些命令不需要全部记住,记住常用的就好vi命令模式中可用的移动键: h---将光标向左移一个字符 j---将光标向下移一个字符 k---将光标向上移一个字符 l---将光标向右移一个字符 w---将光标向前移一个单词 b---将光标向后移一
2016-10-14 15:07:05 546
linux下使用vscode搭建STM32开发环境流程资料
2022-06-29
VC++ QRcode二维码解码器程序源码.rar
2020-04-16
底层库通过JNI回调android层接口
2019-04-17
纯Csm2算法源码
2018-11-28
RSA算法公钥私钥加解密C语言源码调试通过
2017-04-14
RSA算法源码实现公钥私钥加解密的mfc程序
2017-03-31
嵌入式C语言汉字显示
2016-12-14
条形码嵌入式C语言生成源码
2016-12-01
条形码 vc++ 生成源码
2016-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人