Linux内核多线程实现方法 —— kthread_create函数

Linux内核多线程实现方法 —— kthread_create函数   内核经常需要在后台执行一些操作,这种任务就可以通过内核线程(kernle thread)完成独立运行在内核空间的标准进程。内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,mm指针被设置为NULL;它只在内核空...

2014-10-14 14:54:12

阅读数:7463

评论数:0

DMA基本概念及linux2440下DMA驱动程序编写与测试

DMA基本概念及linux2440下DMA驱动程序编写与测试 分类: linux 6410驱动2013-02-25 19:11 1063人阅读 评论(5) 收藏 举报 转自:http://blog.techbulo.com/tech/artical/1462.html ...

2014-10-14 14:41:17

阅读数:595

评论数:0

芯片加密解密

基本概述编辑 单片机(MCU)一般都有内部EEPROM/FLASH供用户存放程序和工作数据。为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就叫单片机加密或...

2014-05-13 16:45:16

阅读数:3021

评论数:1

关于stc51的冷启动下载和复位

关于stc51的冷启动下载和复位  Stc单片机里面有一段出厂时固化的程序,这段程序的作用是检测串口是否要下载程序,不需要则执行单片机内的用户程序。每次启动时运行这端程序,这就是为什么每次下载时要冷启动。而复位后单片机是从地址0000H处开始执行,地址0000H又会指向主程序入口,即主函数处,即...

2014-05-13 15:40:31

阅读数:3723

评论数:0

linux-2.6.26下开发marvell 88w8686 wifi驱动

转自:  最近在做基于2440+linux下,开发marvell 88w8686驱动 ,因为三月、硬件设计是spi接口,所以我从marvell 官方网站下载SPI 接口的驱动程序src_gspi8686.tar.bz2, 此驱动程序是基于PXA270的,所以需要自己移植到2440...

2014-05-08 22:33:52

阅读数:1005

评论数:0

DM9000A的相关总结

1.原理 以FL2440为研究对象,DM9000A支持8位 16为模式,内部有64个寄存器、SRAM等,分别控制其工作,对于其寄存器的读写依靠地址端口和数据端口来控制,在系统移植的时候根据硬件连接设置: #define      S3C24XX_PA_DM9000 0x20000300   #...

2013-09-17 14:41:04

阅读数:1131

评论数:0

嵌入式Linux调试方法

远程调试Linux应用程序:    1.  GDBServer(开发板安装) + arm-linux-gdb(主机,命令行)    2.  GDBServer(开发板安装) + arm-linux-insight (主机,图形化界面) 远程调试Linux内核:     1. Ker...

2013-09-07 09:43:41

阅读数:794

评论数:0

嵌入式车载平台的GPRS网络实现-续PPP协议(转)

接上一节未完的嵌入式车载平台的GPRS网络实现(转) 前面以为GPRS模块直接执行AT指令就可以联网,好像不对,看了下面的知道还缺少PPP协议,那么PPP协议一般是ADSL在拨号的时候用的(PPPOE),怎么和串口通信挂钩的呢? 来自:http://network.51cto.com/...

2013-06-30 23:37:20

阅读数:3070

评论数:0

嵌入式车载平台的GPRS网络实现(转)

这篇文章觉得不错,对于利用GPRS模块进行网络数据传输的理解有很大帮助,不知道3G模块原理是不是类似,只是速度上的问题而已,因为在本人的Andiroid手机上(3G启动)进行网络程序的开发时,用的是Socket的相关API与Internet的服务器通信,而与第3点的总结不一致,待证实! 总结: ...

2013-06-30 20:08:42

阅读数:3935

评论数:1

Linux+libusb开发用户USB驱动程序(转)

注:在用户级的USB 驱动编写,不错,好像QT 嵌入式移植里面也是基于此的。 内核级的usb驱动在以下几个方面会有问题: 1 当使用我们产品的客户有2.4内核的平台,同时也有2.6内核的平台,我们要设计的驱动是要兼容两个平台的,就连makefile 我们都要写两个。   2 当我们...

2013-06-30 18:25:05

阅读数:5393

评论数:1

Linux TTY驱动--Serial Core层

接上一节: Linux TTY驱动--Uart_driver底层 一. 为了给USB-Serial类型的串口打基础(USB-Serial和Serial Core一样,构造了一个tty_driver和tty_operations,叫做usb-serial层),这里仔细分析Serial Cor...

2013-06-29 00:04:46

阅读数:5017

评论数:0

Linux TTY驱动--Uart_driver底层

Linux 中将串口驱动进行了分层,如图: 本节讲解与底层硬件密切相关的层,以S3C2440为例剖析:     实现文件有:/drivers/serial/samsung.c    /drivers/serial/samsung.h      /drivers/serial/s3c2440...

2013-06-28 15:39:03

阅读数:14245

评论数:2

Linux MMC子系统(1)-- MMC Host层(2.6.28)

Linux 的 MMC驱动主要管理MMC卡/SD卡,从上到下分为了MMC设备层,MMC Core层,MMC Host层,Host层负责底层硬件: 如下:         /dev下设备文件访问MMC/SD/SDIO 用户空间             | ------------------...

2013-06-26 11:59:04

阅读数:1087

评论数:0

usb Mass Strorage分析(2)

USB MASS Storage驱动分层很多层次: 1. 从最简单的“ 物理层”开始,先介绍一下MSC(Mass Storage Class) Device 与USB Host的结构: 上图中,Storage Media,就是我们例子中的Nand Flash芯片。 而例子中的...

2013-06-25 15:07:40

阅读数:1595

评论数:0

usb Mass Strorage分析(1)

接上一篇: usb-skeleton.c到 usb core层的分析 对于存储设备的USB,Linux源码中有关于USB MASS Storage 的驱动程序(/drivers/usb/storage下),其中/drivers/usb/storage/usb.c 实现了驱动初始化,和usb-sk...

2013-06-24 23:21:02

阅读数:1953

评论数:1

usb-skeleton.c到 usb core层的分析

接Linux USB 主机端 驱动程序(2.6.28) 那一节的内容,说到了调用usb_register_dev函数向usbcore层(/drivers/usb/file.c)注册了 static struct usb_class_driver skel_class = {     .n...

2013-06-24 21:25:37

阅读数:2042

评论数:0

Linux LCD驱动中framebuffer的研究

Linux 本身实现了FrameBuffer驱动(字符驱动)便于应用用于层调用,实现的文件是/drivers/video/fbmem.c文件: static const struct file_operations fb_fops = {     .owner =    THIS_MODULE...

2013-06-23 16:21:37

阅读数:905

评论数:0

Linux MTD层的研究(Nandflash)

花了点时间学习Linux MTD层,下面简单总结一下! 以下是MTD层的结构图       MTD层实现了文件系统与Flash之间的桥梁,下面就粗略说明字符型MTD驱动与下层驱动的关系。 分析对象:/drivers/mtdchar.c 字符型mtd设备 字符设备中定义了mtd_...

2013-06-22 19:15:12

阅读数:3667

评论数:0

关于优先级反转

转自:http://www.blogjava.net/killme2008/archive/2009/06/28/284459.html 在多进程、多线程并发的环境里,从概念上看,有多个进程或者多个线程在同时执行,具体到单个CPU级别,实际上任何时刻只能有一个进程或者线程处于执行状态...

2013-06-04 21:05:52

阅读数:1045

评论数:1

多级页表如何节省进程页表空间

:如果使用简单的一级页表,如果进程使用全部4G线性地址空间,那么将需要高达2^20表项(总共地址线是32位,每页大小为4kb,则页偏移量需要低12位,高20位当作页表地址)来保存表示每个进程的页表,若每项4B,则需要4MB的ram来存储页表。即使一个进程并不使用内的所有地址。          ...

2013-06-04 17:59:35

阅读数:9156

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭