C /C++语言
tizileo
这个作者很懒,什么都没留下…
展开
-
Hisi 3518EV300 基于LiteOs 摄像头驱动开发
如果需要在liteos平台上添加一款新的摄像头驱动,并点亮摄像头,比如我们要把ov5554添加到系统,需要做如下工作:1.添加驱动源代码,源代码路径Hi3516EV200_SDK_V5.0.0.1/mpp/component/isp/user/sensor/hi3516ev200,在这个目录下创建ov5554目录,在其它相类似的sensor目录拷贝源码和make文件,其中xxxx_cmos.c...原创 2019-04-04 18:01:56 · 445 阅读 · 1 评论 -
判断一个整数是否是回文数
问题判定一个正整数是否是一个回文数。例如12121是回文数,而1231不是回文数。解法1:转换成字符串再判断要判断一个整数是否是回文数,最自然的想法是把整数转换成一个字符串,然后根据回文的对称特性进行判断。数字转换为字符串可以通过itoa函数实现,判断字符串是否为回文字符串代码如下:bool isPalindrome(string &str) { int begi转载 2013-03-05 08:16:40 · 1180 阅读 · 0 评论 -
多进程和多线程文件拷贝
1. 线程与进程的异同点A.相同点1): 比如都有自己在系统中唯一标识ID,一组寄存器(pc指针),状态(6种),调度优先级以及所要遵循的调度策略。2): 每个进程都有一个进程控制块,线程也拥有一个线程控制块(在Linux内核,线程控制块与进程控制块用同一个结 构体描述,即struct task_struct),这个控制块包含线原创 2016-05-10 12:14:32 · 1282 阅读 · 0 评论 -
线程同步和互斥机制的区别
很多初学者在学习线程同步和互斥机制的时候往往不能真正理解他们之间的区别,那就不能再合适的场合使用好这两种机制,其中的区别: 1. 互斥锁主要用来保护临界资源,什么是临界资源,就是有可能多个线程都需要访问的数据地址,也有可能是某一段 代码,执行这段代码有可能会改变多个线程都需要访问的数据。 2. 加入同步机制主要是为了在多线程程序中,如果需要对某个共享资源C进行同原创 2016-05-10 12:48:19 · 5146 阅读 · 0 评论 -
数据结构之链表学习心得
顺序表从节点之间的链接方式分我连续空间顺序表和链式顺序表,前者的实现就是在普通数组上做了封装,后者实现就是前一个节点保存后一个节点的地址。本文讨论的就是后者,链式顺序表的一个最明显的特征,就是在增减,插入,排序,遍历等操作中有更好的效率,这些操作的有一个共同的核心思想,就是对链表节点进行重新排序。添加节点到一个链表,有头插法和尾插法之分,前者就能实现一个插入顺序的逆置,实现代码:#includ原创 2016-05-01 10:02:27 · 7546 阅读 · 0 评论 -
Linux C程序设计的一些小技巧
罗列一下自己在工作和学习中知道的定位段错误的一些方法:1. 在自己写的代码中,如果运行后报出段错误的提示,结合gdb调式可以进行定位,现在当前调试环境的shell中输入,ulimit -c unlimited 命令,这样在运行代码是如果出现段错误,就会在当前的运行shell中尝试core文件,此文件就是用来定位段错误的,然后在调试模式下输入,gdb a.out core ,当然必须在gdb调原创 2016-04-26 17:49:57 · 435 阅读 · 0 评论 -
从一个简单的sensor驱动看linux输入子系统框架。
最近学习一个简单的心率计驱动,在学习驱动源码的过程中,体验了linux驱动中input子系统框架及其它一些知识点,现在记录下来可供以后复习参考学习。1. sensor数据的获取,一般的做法是注册中断,在中断里面做处理,中断注册函数主要做的事情就是唤醒等待队列。1)注册中断:request_irq(hwmon->irq, jz_hwmon_irq_handler, 0, pdev->na原创 2016-07-31 17:49:04 · 5212 阅读 · 1 评论 -
C++ placement new 用法
---源码---struct Student{ string name; int age;};//创建共享内存的ID#define MEM_ID 1234//映射共享内存的大小,3个Student大小长#define MEM_SIZE sizeof(Student)*3//共享内存读取端int main(void){ //打开共享内存 int shmid = shmg...转载 2018-02-27 15:35:02 · 252 阅读 · 0 评论