
编程
文章平均质量分 82
mmhhj
这个作者很懒,什么都没留下…
展开
-
OMAPL138中断嵌套解决办法
OMAPL138中断嵌套解决办法问题由来解决方法问题由来在一个数据采集项目中,采用OMAPL138作为主控芯片。在DSP侧开启一个125us的定时器,采集80个通道的AD数据后,然后启动DMA数据传输,在传输完成中断中,进行计算处理。采集数据大约需要100us,数据传输大约需要140us,计算需要14ms。明显的计算过程比较耗时,但是计算周期是20ms,只需要在20ms内完成计算即可,所以也是可以的。定时器采用4号中断,DMA采用8号中断.。但是问题是由于OMAPL138的中断优先级,仅仅在当两个中原创 2020-11-30 11:27:53 · 574 阅读 · 0 评论 -
Boost中的图(1)
图的存储结构可以有邻接矩阵,邻接表,十字链表,多重链表一.图的邻接表表示1.邻接表adjacency_list的类模板adjacency_list<OutEdgeList,VertexList,Directed,VertexProperties,EdgeProperites,GraphProperties,EdgeList>OutEdgeList 表示出边容器类,可以是vecS--数组,listS原创 2017-03-14 22:42:08 · 1640 阅读 · 0 评论 -
终端设备驱动(Linxu驱动9)
说明: linux中的终端设备有以下几类:串口终端:ttySn,伪终端pty,控制终端ttyn,console.伪终端在linux中用pts(pseudo terminal slave)和ptmx(pseudo terminal master)实现. 控制终端用于登录linux,进行操作.在系统启动时,可以在初始化的时候通过console=device,options来配置控制终端原创 2017-03-12 16:12:41 · 387 阅读 · 0 评论 -
misc混杂设备和sysfs设备(Linux驱动8)
misc混杂设备:说明: 混杂设备包括nvram,看门狗,ds1286时钟,lcd等.混杂设备本质还是字符设备,其功能实现于file_operations. 混杂设备主设备号为10.变量: struct miscdevice{ int minor; char *name file原创 2017-03-12 15:56:07 · 589 阅读 · 0 评论 -
SPI驱动:(Linux驱动7)
说明: spi,i2c,usb等总线,在cpu上均有相应的控制器,与之对应的数据结构是spi_master,i2c_adapter等.主机控制器和外设分离,外设用于 驱动不同的芯片,通过这样设计避免了外设驱动与控制器关联. spi驱动包括spi核心(/drivers/spi/spi.c),主要包括主机控制器,外设的注册,注销原创 2017-03-12 15:30:26 · 341 阅读 · 0 评论 -
rtc时钟芯片驱动(Linux驱动6)
说明: rtc时钟驱动将大部分通用部分在rtc-dev.c文件中实现.通用部分实现了file_operations,并导出了rtc_class_ops结构,rtc_device_register rtc_device_unregister函数,底层部分只要实现rtc_class_ops即可.变量: rtc_class_ops{ o原创 2017-03-12 15:26:45 · 543 阅读 · 0 评论 -
分层设计的驱动程序 及gpio驱动(Linux驱动5)
说明: 通过借用面向对象的思想linux中的驱动程序呈现两个特点,分层与分离.就是将重复的代码抽象出来,用户仅需关心不一样的部分.通过抽象,将一些设备的共同部分抽取出来,内核实现 通用部分,用户实现具体不一样部分.输入驱动,rtc驱动,i2c驱动等都是这样实现的.gpio输入驱动: 说明: gpio驱动是指用gpio来实现的按键输入驱动.内核drivers/input/keyboa原创 2017-03-12 15:23:17 · 361 阅读 · 0 评论 -
platform设备驱动(Linux驱动4)
说明: platform是Linux中总线的一种,与i2c,pci,isa一样.但是它并非实际存在,而是虚拟出来的,用于将soc中的外围器件挂接在这个总线中. linux中的驱动包括总线,设备,设备驱动三个实体,总线将设备和驱动绑定.platform总线的驱动是platform_driver,设备是platform_device. 总线的match函数就是原创 2017-03-12 15:17:45 · 344 阅读 · 0 评论 -
阻塞IO,异步通知,中断,时间定时器(Linux驱动2)
1 阻塞和非阻塞IO说明: 阻塞IO,当资源不可用时,进程就阻塞住.非阻塞IO,当资源不可用时,进程不被阻塞. 系统通过等待队列实现阻塞IO,等待队列的调度与系统调度有关. 非阻塞IO,需要用户不断查询状态.用户侧通过select,FD_SET等宏来实现,驱动侧需要实现poll函数.变量 wait_queue_head_t head wait_queue_t原创 2017-03-12 12:02:05 · 784 阅读 · 0 评论 -
Linux中的同步问题(Linux驱动1)
操作系统中存在竞态问题,就是同时访问共享资源(包括程序,数据),引起竞态的原因有:smp,抢占式内核,中断(硬中断,软中断等). 抢占式内核竞态问题的图示: 假如代码如下: write(resource); write_count++;A进程 B进程 C进程-------------------------------------------原创 2017-03-12 11:29:53 · 796 阅读 · 0 评论 -
Linux内存访问(Liunx驱动3)
1 内存与IO访问 说明: 从操作系统角度内存可分为内存空间和IO空间,对于x86系统存在IO空间,但是对于arm系统只有内存空间. 内存空间,在linux系统中又分为用户内存和内核内存.用户内存在0~3G范围,内核内存在3G~4G范围.用户程序运行在用户内存中,各个用户具有自己的空间,互相不干扰.内核运行在内核内存中,具有固定分配. 内核内存从高向低分为几个部分:原创 2017-03-12 14:53:18 · 368 阅读 · 0 评论 -
Linux进程之间资源保护
说明 不同的进程如果需要访问同一资源,需要对资源的访问加上保护,保护的方法有 *互斥量,信号量,文件锁。方法1:通过互斥量pthread_mutex_t保护 互斥量pthread_mutex_t本来用在线程中,有pthread_mutex_init,pthread_mutex_lock,pthread_mutex_unlock等函数构成资源保护。如果需要进程资源保护,需要使用原创 2017-03-12 16:47:23 · 1647 阅读 · 0 评论 -
How to use s11n?
1)what is s11n?s11n is 3rd lib for serialize/deserialize stl .(stl:standard template library). you can use s11n for save and load c++ class or struct object at any time. for example:you define a clas原创 2016-11-23 16:36:24 · 449 阅读 · 0 评论 -
JSP学习
javascript用途:javascript是一种嵌入html中的脚本语言,它弥补了html不能动态改变的不足,可以动态的创建网页,验证表单,创建cookies等。与php,python,asp,vbscript等脚本语言类似,但是后者更多是用于服务器,而jsp更多是在前台的html中。虽然jsp比较强大,但是由于与html结合在一起,比较凌乱,因此在使用起来还是有局限性。简介:1.jsp需要嵌套原创 2016-09-15 07:21:33 · 419 阅读 · 0 评论 -
xml学习
用途:xml用来传输和存储数据,html用来显示数据简介:xml是可扩展标记语言(extensible markup language) xml标签没有预定义,需要自行定义标签。 xml被设计成自我描述。 xml是w3c的推荐标准。 xml不是要取代html,而是对html的补充。 xml不做任何事情,xml被用来结构化储存和传输数据。 xml将数据从html中分离出来,html着重显示原创 2016-09-15 07:16:02 · 271 阅读 · 0 评论 -
PHP and Python学习
1PHP语言1.1使用范围web服务器控制脚本桌面程序1.2特点解释型语言:解释器php适用环境:unix.linux,widows支持mysql,db2,dbase,odbc,oracle等数据库支持soap,snmp,pop3,smtp,com,corba等协议关联站点:http://www.runoob.com/python/python-tutorial.htmlhttp:原创 2016-09-14 15:25:15 · 3292 阅读 · 0 评论 -
Makefile编写
wildcard与patsubst 函数makefile 里的函数跟它的变量很相似:使用的时候,你用一个$符号跟:(函数名,空格后跟一列由逗号分隔的参数,)。 在 GNU Make 里有一个叫 ‘wildcard’ 的函 数,它有一个参数,功能是展开成一列所有符合由其参数描述的文 件名,文件间以空格间隔。 你可以像下面所示使用这个命令: SOURCES = $(wildcard *.c) 这行原创 2016-09-14 11:15:16 · 287 阅读 · 0 评论