- 博客(7)
- 收藏
- 关注
转载 linux mips 启动分析
系统加电起动后,MIPS 处理器默认的程序入口是0xBFC00000,此地址在无缓存的KSEG1的地址区域内,对应的物理地址是 0x1FC00000,即CPU从0x1FC00000开始取第一条指令,这个地址在硬件上已经确定为FLASH的位置,Bootloader将 Linux 内核映像拷贝到 RAM 中某个空闲地址处,然后一般有个内存移动操作,目的地址在 arch/mips/Makefile
2014-03-05 17:03:19 3340
原创 小记:platform总线注册设备和设备驱动
定义一个设备驱动:static struct platform_driver my_plat_driver = { .driver = { .name = "my_plat", .owner = THIS_MODULE,
2014-03-05 15:22:48 617
转载 内核定时器
概要内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 和 kernel/timer.c 文件中。被调度的函数肯定是异步执行的,它类似于一种“软件中断”,而且是处于非进程的上下文中,所以调度函数必须遵守以下规则:1) 没有 current 指针、不允许访问用户空间。因为没有进程上下文,相关代码和被中断的进程没有任何联系。2) 不能
2014-03-03 14:12:20 567
翻译 记录:LED灯驱动
#include #include #include #include #include #include #include #include #include #include #include #include #include #define LED_MAJOR 100#define LED_MINOR 0#define SET
2014-03-03 09:10:24 517
原创 记录:select用法
首先定义一个fd_set: fd_set readfd定义一个struct timeval :struct timeval timeout;struct timeval中有两个参数:timeout.tv_sec=5;timeout.tv_usec=0;用来设置select()的等待时间。然后把要监听的文件描述符(例如:fd = open("/dev/ttyS2"
2014-02-27 17:18:29 596
原创 Linux下的udp_socket编程
在QT中如果要使用udp,就要#include ,同时在.pro文件中加入QT+=network声明一个UPD类:QUdpSocket *sender,receiver;之后要初始化:sender = new QUdpSocket(this);如果是做接收用的话还要用bind绑定端口:receiver->bind(45454,QUdpSocket::ShareAddress);然后
2014-02-22 16:51:39 792
原创 线程小记
线程比进程好的地方是可以共享创建线程的线程(即父进程)的资源,例如全局变量。用pthread_create()来创建一个线程,如果没特殊要求的话可以使用缺省配置。例子:pthread_t t1;pthread_create(&t1, NULL, trd, NULL);第一个参数为一个 pthread_t 类型的变量。第二个参数为一个pthread_attr_t() 的
2014-02-20 23:18:32 526
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人