- 博客(82)
- 资源 (9)
- 收藏
- 关注
转载 【VS开发】浅谈C/C++中的static和extern关键字
一.C语言中的static关键字 在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。 (1)修饰局部变量 一般情况下,对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了。但是如果用static进行修饰的话,该变量便存放在静态数据区,其生命周期一直持续到整个程序执行结束。但是
2016-05-31 09:17:51 689
转载 【VS开发】static、extern分析总结
引用请注明出处:http://blog.csdn.net/int64ago/article/details/7396325 对于写了很多小程序的人,可能static和extern都用的很少,因为static和extern通常在工程量很大时候才能体现优势很必要性,这就不奇怪linux内核代码中“泛滥”着这两个关键词,而且据我所知,这也是面试经常被问道的,因为这涉及到的底层
2016-05-31 09:13:34 886
转载 【Linux开发】linux中关于dma_alloc_coherent的用法
大家都知道,DMA的操作是需要物理地址的,但是在linux内核中使用的都是虚拟地址,如果我们想要用DMA对一段内存进行操作,我们如何得到这一段内存的物理地址和虚拟地址的映射呢?dma_alloc_coherent这个函数实现了这种机制。 1、函数原型:void *dma_alloc_coherent(struct device *dev, size_t size,dma_addr_t *dma_h
2016-05-29 08:47:17 1383
转载 【DSP开发】TMS320C66x DSP SPI Nor Flash的程序烧写
经过一段时间的研究终于把TMS320C6657单核和双核的SPI Nor Flash的程序烧写调通了。工具都是前辈的工作,有需要的可以留下邮箱,我有空可以发。原理参考钱丰的《TI c66x 系列DSP 多核BOOT 的研究》论文。通过Nor flash 烧写加载程序的全部流程:(在no-boot模式下)一、首先讲讲工具链:hex6x
2016-05-28 17:31:25 6417 6
转载 【科普杂谈】会写程序还不够,硅谷杰出软件工程师都有的 5 种能力
曾任职于Google和Quora等公司、现任Quip软件工程师的Edmond Lau,于《The Effective Engineer》一书中访问任职于Facebook、Instagram和Google等知名网路公司的资深软件工程师,归纳出他们眼中高生产力的杰出软件工程师都具备的五种能力。一、不害怕探索陌生程序语言接触新专案或是转换工作跑道时,都有可能需要学习全然陌生的程序语言
2016-05-22 10:17:46 640
转载 【VS开发】字符,字节和编码
字符,字节和编码[原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/encoding.htm]级别:中级摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问
2016-05-22 09:29:34 621
转载 【VS开发】关于SEH的简单总结
尽管以前写过一篇SEH相关的文章《关于SEH的简单总结》, 但那真的只是皮毛,一直对Windows异常处理的原理似懂非懂, 看了下面的文章 ,一切都豁然开朗. 1997年文章,Windows技术的根一直没变:http://www.microsoft.com/msj/0197/exception/exception.aspxMatt Pietrek 著 董岩 译
2016-05-21 21:58:20 3931
转载 【VS开发】C++异常处理操作
异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制。也许我们已经使用过异常,但是你会是一种习惯吗,不要老是想着当我打开一个文件的时候才用异常判断一下,我知道对你来说你喜欢用return value或者是print error message来做,你想过这样做会导致Memory Leak,系统退出,代码重复/难读,垃圾一堆…..吗?现在的软件已经是n*365*24小时的
2016-05-21 21:34:49 3280
转载 【人生杂谈】【科普杂谈】不要对知识与技术的遗忘感到焦虑
这段时间一直在复习linux设备驱动,越是复习越是觉得心慌,以前的知识好像全都忘记了,晚上打开衣柜,甚至认不出那是我去年冬天买的外套,感慨一下,我的记忆力大不如前了。 以下内容转自同学的博客:http://blog.csdn.net/elevenxjz 以下四段是我转自CSDN上的一篇帖子: 1、一门技术必须多用才能掌握,最好的办法是在项目中运用。如果你在真实的项目中使用了某一项技术,那么印象
2016-05-21 21:33:57 743
转载 【Linux开发】linux设备驱动归纳总结(十三):1.触摸屏与ADC时钟
linux设备驱动归纳总结(十三):1.触摸屏与ADC时钟xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这节的内容说不上是驱动,只是写个代码让触摸屏能够工作,随便介绍一下时钟子系统(我不知道这样叫合不合适),仅次而已。xxxxxxxxxx
2016-05-17 23:35:47 2147
转载 【Linux开发】linux设备驱动归纳总结(十二):简单的数码相框
linux设备驱动归纳总结(十二):简单的数码相框xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx其实代码很简单,实现lcd驱动,使lcd能够显示图片,当按下按键后切换图片。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2016-05-17 23:35:19 537
转载 【Linux开发】linux设备驱动归纳总结(十一):写个简单的看门狗驱动
linux设备驱动归纳总结(十一):写个简单的看门狗驱动xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx设备驱动的归纳已经差不多了,趁着知识点还没有遗忘,写点代码巩固一下,来个简单的看门狗驱动——静态平台类的杂设备看门狗驱动,有定时和重启两个基本功
2016-05-17 23:35:04 881
转载 【Linux开发】linux设备驱动归纳总结(十):1.udev&misc
linux设备驱动归纳总结(十):1.udev&miscxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx不知不觉我的总结已经写得七七八八了,这一章节只是补充一下两个知识点:动态创建设备节点和杂设备类的注册。xxxxxxxxxxxxxxxxx
2016-05-17 23:34:36 404
转载 【Linux开发】linux设备驱动归纳总结(九):1.platform总线的设备和驱动
linux设备驱动归纳总结(九):1.platform总线的设备和驱动xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这一节可以理解是第八章的延伸,从这节开始介绍platform设备驱动。xxxxxxxxxxxxxxxxxxxxxxxxxx
2016-05-17 23:34:17 449
转载 【Linux开发】linux设备驱动归纳总结(八):4.总线热插拔
linux设备驱动归纳总结(八):4.总线热插拔xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx上一节介绍设备管理中的分层思想和面向对象思想(名字是我自己瞎编的)。接下来说一下热插拔的操作。xxxxxxxxxxxxxxxxxxxxxxxxx
2016-05-17 23:34:05 617
转载 【Linux开发】linux设备驱动归纳总结(八):3.设备管理的分层与面向对象思想
linux设备驱动归纳总结(八):3.设备管理的分层与面向对象思想xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx前面的内容介绍了总线、设备和驱动函数的关系和操作。从这节开始,介绍设备管理中的分层思想和面向对象思想(名字是我自己瞎编的,《LDD》上
2016-05-17 23:33:48 462
转载 【Linux开发】linux设备驱动归纳总结(八):2.总线、设备和驱动的关系
linux设备驱动归纳总结(八):2.总线、设备和驱动的关系xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx上一节介绍了总线、设备和驱动函数的注册,这节着重介绍它们三者的关系,和上一节一样,我模拟一条usb总线,一个usb鼠标设备和一个usb鼠标驱
2016-05-17 23:33:31 459
转载 【Linux开发】linux设备驱动归纳总结(八):1.总线、设备和驱动
linux设备驱动归纳总结(八):1.总线、设备和驱动xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这几天一直在看设备模型,内核的代码看得我越来越沮丧,特别是kboject、kset和ktype之间的关系。但是,设备模型的归纳我打算先跳过这几个重
2016-05-17 23:33:14 501
转载 【Linux开发】linux设备驱动归纳总结(七):2.内核定时器
linux设备驱动归纳总结(七):2.内核定时器xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这节将介绍内核定时器的使用。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2016-05-17 23:32:54 378
转载 【Linux开发】linux设备驱动归纳总结(七):1.时间管理与内核延时
linux设备驱动归纳总结(七):1.时间管理与内核延时xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这节将介绍一些很枯燥的内核,大体是内核中时间的概念和内核延时的使用,并没有源代码。xxxxxxxxxxxxxxxxxxxxxxxxxxx
2016-05-17 23:32:40 467
转载 【Linux开发】linux设备驱动归纳总结(六):3.中断的上半部和下半部——工作队列
linux设备驱动归纳总结(六):3.中断的上半部和下半部——工作队列xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这节介绍另外一种的下半部实现——工作队列。相对于软中断/tasklet,工作对列运行在进程上下文,允许睡眠,接下来慢慢介绍。
2016-05-17 23:32:30 475
转载 【Linux开发】linux设备驱动归纳总结(六):3.中断的上半部和下半部——tasklet
linux设备驱动归纳总结(六):3.中断的上半部和下半部——taskletxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一、什么是下半部中断是一个很霸道的东西,处理器一旦接收到中断,就会打断正在执行的代码,调用中
2016-05-17 23:32:19 500
转载 【Linux开发】linux设备驱动归纳总结(六):2.分享中断号
linux设备驱动归纳总结(六):2.分享中断号xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx上一节介绍的内容是,调用接口request_irq(),使中断号与中断处理函数对应。但是,有时候会有这样的情况,如果开发板上按键的中断已经被另外的驱动程
2016-05-17 23:31:53 463
转载 【Linux开发】linux设备驱动归纳总结(六):1.中断的实现
linux设备驱动归纳总结(六):1.中断的实现xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一、什么是中断中断分两种:1)中断,又叫外部中断或异步中断,它的产生是由于外设向处理器发出中断请求。其中外部中断
2016-05-17 23:31:38 435
转载 【Linux开发】linux设备驱动归纳总结(五):4.写个简单的LED驱动
linux设备驱动归纳总结(五):4.写个简单的LED驱动xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx在上面的章节的知识,已经能够实现个简单的LED驱动。居于前面操作LED的函数(5th_mm_2/3rd/test.c),我一步一步来修改。
2016-05-17 23:31:24 525
转载 【Linux开发】linux设备驱动归纳总结(五):3.操作硬件——IO静态映射
linux设备驱动归纳总结(五):3.操作硬件——IO静态映射xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx有时候会觉得,每次访问硬件都要先通过ioremap来获取虚拟地址,其实有没有一种一劳永逸的方法,只要一次的操作,以后就能通过这个地址来访问
2016-05-17 23:31:17 392
转载 【Linux开发】linux设备驱动归纳总结(五):2.操作硬件——IO内存
linux设备驱动归纳总结(五):2.操作硬件——IO内存xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx在之前章节的驱动,都没有对硬件进行操作,接写来将从我之前学的裸板驱动开始,讲解在linux系统下如何访问硬件。xxxxxxxxxxxx
2016-05-17 23:30:59 496
转载 【Linux开发】linux设备驱动归纳总结(五):1.在内核空间分配内存
linux设备驱动归纳总结(五):1.在内核空间分配内存xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一般的,用户空间使用函数malloc在堆上分配内存空间,同样的,在内核空间同样有一套类似的函数来分配空间。下面的知识会涉及页式管理的内存机制,如
2016-05-17 23:30:52 413
转载 【Linux开发】linux设备驱动归纳总结(四):5.多处理器下的竞态和并发
linux设备驱动归纳总结(四):5.多处理器下的竞态和并发xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这节将在上一节的基础上介绍支持多处理器和内核抢占的内核如何避免并发。除了内核抢占和中断外,由于多处理起的缘故,它可以做到多个程序同时执行。所
2016-05-16 12:22:48 389
转载 【Linux开发】linux设备驱动归纳总结(四):4.单处理器下的竞态和并发
linux设备驱动归纳总结(四):4.单处理器下的竞态和并发xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx经过上面几节的铺垫,终于要来重点了,由于内核的进程调度和中断(中断还没讲,不过这里会大概的说说),它们都会进入内核共用内核的资源。所以,只要
2016-05-16 12:21:57 480
转载 【Linux开发】linux设备驱动归纳总结(四):3.抢占和上下文切换
linux设备驱动归纳总结(四):3.抢占和上下文切换xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx上一节介绍了进程调度的一些基本概念,并简单介绍了在没有抢占的情况下,CFS调度的是如何分配进程的优先级和时间片。但是,内核并不会只是单一地分配时间
2016-05-16 12:21:13 388
转载 【Linux开发】linux设备驱动归纳总结(四):2.进程调度的相关概念
linux设备驱动归纳总结(四):2.进程调度的相关概念xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx进程的调度就是指进程间的切换,进程调度的知识其实我也不太清除,我查找的资料有些说法并不一致,所以我只能说一下一些我的理解。如有错误或不足,望指正
2016-05-16 12:19:45 434
转载 【Linux开发】linux设备驱动归纳总结(四):1.进程管理的相关概念
linux设备驱动归纳总结(四):1.进程管理的相关概念xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx接下来的几节我会大概的讲一下内核进程的一些概念,其实应该在学习系统编程时候就应该知道的。。我参照的书籍是《linux内核设计与实现》(第三版)。
2016-05-16 12:19:01 446
转载 【Linux开发】linux设备驱动归纳总结(三):7.异步通知fasync
linux设备驱动归纳总结(三):7.异步通知fasyncxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx异步通知fasync是应用于系统调用signal和sigaction函数,下面我会使用signal函数。简单的说,signal函数就是让一个信
2016-05-16 12:17:42 575
转载 【Linux开发】linux设备驱动归纳总结(三):6.poll和sellct
linux设备驱动归纳总结(三):6.poll和sellctxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx接下来会讲系统调用select在驱动中的实现,如果对系统调用select不太懂的话,建议先看书补习一下。xxxxxxxxxxxxxx
2016-05-16 12:16:49 529
转载 【Linux开发】linux设备驱动归纳总结(三):5.阻塞型IO实现
linux设备驱动归纳总结(三):5.阻塞型IO实现xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一、休眠简介:进程休眠,简单的说就是正在运行的进程让出CPU。休眠的进程会被内核搁置在在一边,只有当内核再次把休眠的
2016-05-16 12:01:56 573
转载 【Linux】linux设备驱动归纳总结
前言:(总结已经基本写完,这段时间我会从新排版和修正。错误总会有的,望能指正!)前段时间学习了嵌入式驱动,趁着没开始找工作,这段时间我会每天抽出时间来复习。 我的总结是根据学习时的笔记(李杨老师授课)、《linux内核设计与实现》第三版、《linux设备驱动程序》第三版和《linux设备驱动开发详解》第一版来归纳的。文章中涉及一些自己的想法,并不能保证所说的一定正确。 我也
2016-05-16 12:00:46 492
转载 【Linux开发】linux设备驱动归纳总结(三):4.ioctl的实现
linux设备驱动归纳总结(三):4.ioctl的实现一、ioctl的简介:虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会有对应的函数操作。出于这样的原因
2016-05-16 11:59:42 892
转载 【Linux开发】linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现
linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现一、结构体struct file和struct inode在之前写的函数,全部是定义了一些零散的全局变量。有没有办法整合成到一个结构体当中?这样的话,看起来和用起来都比较方便。接下来就要说这方面的问题。不过先要介绍一下除了fops以外的两个比较重要的结构体
2016-05-16 11:58:56 674
转载 【Linux开发】linux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write
linux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write一、文件操作结构体file_operations继续上次没讲完的问题,文件操作结构体到底是什么东西,为什么我注册了设备之后什么现象都没有?可以验证文件操作结构体的内容。file_operations是一个函数指针的集合,用于存放我们定义的用于操
2016-05-16 11:58:07 841
动态平衡二叉树demo
2015-08-04
adaboost 演示demo(基于Matlab,学习算法包括决策树、神经网络、线性回归、在线贝叶斯分类器等)
2015-07-11
压缩感知Hello-world+正交匹配追踪法(OMP)+最小二乘法辨识(系统辨识--Matlab)
2015-03-18
图像压缩算法Matlab集合
2015-03-18
VS2010多文档图像处理所有基础程序
2015-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人