- 博客(33)
- 收藏
- 关注
原创 链表动态加载范例
#include#include#define LEN sizeof(struct Student)int n = 0;typedef struct Student{ int num; int score; struct Student *next;}T_Student;T_Student *create(int num, int score){
2013-06-08 23:16:50
776
原创 中秋、国庆前的一点小感叹。。。
今年经历的事情太多了。。。 大四。。。 工作。。。 补考。。。。。 失业。。。。 待业。。。。。。 。。。 。。。 。。。 有点累了。。
2012-09-29 00:50:16
1579
原创 记 失业中的无奈...
在成都来差不多25天了,工作还没落实。。。 哎,诸多无奈。。。 真想去拉萨、西藏逛逛,忘掉一切。 现实如此残酷,让人磨灭曾经的梦想。。。 。。。。。。。。。。。 坚持吧,不行就回重庆去,或者去深圳。 树挪死, 人
2012-07-14 20:46:17
2480
转载 数组 与 指针 相互表示法
定义一个二维数组: int a[3][5];则有:表示形式含义地址 a二维数组名,指向一维数组a[0],即0行首地址2000 a[0], *(a+0), *a0行0列元素地址2000 a+1, &a[1]1行首地址2008 a[1], *(a+1)1行0列元素a
2012-07-05 09:59:07
771
转载 多维数组 与 指针
记住公式*(*(ptrArray+i)+j) == ptrArray[i][j] #include int main(void){ int zippo[4][2] = {{2,4},{6,8},{1,3},{5,7}}; printf("zippo=%p,zippo+1=%p",zippo,zippo+1);/
2012-07-05 09:40:56
716
转载 linux 线程池
#include #include #include #include #include #include /* *线程池里所有运行和等待的任务都是一个 CThread_worker *由于所有任务都在链表里,所以是一个链表结构 */typedef struct worker{ /*回调函数,任务运行时会调用此函数,注意也可声明成其它形式*/ vo
2012-07-04 23:02:15
678
转载 线程的同步与互斥
相交进程之间的关系主要有两种,同步与互斥。所谓互斥,是指散步在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它 们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。所谓同步,是指散步在不同进程之间的若干程序片断,它们的运行必须严格按照规定的 某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。 显然,同步是一种更为复杂的互斥,而互斥是一
2012-07-04 23:00:52
1019
转载 int const *a 等解析
关键问题点:const 属于修饰符 ,关键是看const 修饰的位置在那里1、const int *a这里const 修饰的是int,而int定义的是一个整值因此*a 所指向的对象 值 不能通过 *a 来修改,但是 可以重新给 a 来赋值,使其指向不同的对象eg: const int *a = 0; const int b = 1;
2012-07-04 22:57:22
1754
转载 C变量的存储方式
变量可以分为全局变量、静态全局变量、静态局部变量和局部变量 按存储区域分:全局变量、静态全局变量和静态局部变量都存放在内存的全局数据区,局部变量存放在内存的栈区按作用域分:全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返
2012-06-29 10:20:45
8036
转载 硬浮点、软浮点相关
定义:硬浮点指的是浮点数协处理器软浮点指的是gcc等编译器的浮点数模拟协处理器================软浮点实现的两种方法: 这个还不知道。。。
2012-06-29 10:09:22
3944
转载 uboot自动引导内核参数
set bootcmd tftp 30008000 uImage\;bootm 30008000================setenv bootargs noinitrdroor=/dev/nfs nfsroot=/fs_mini_mdev ip=192.168.2.201:192.168.2.200:192.168.2.1:255.255.255.0::eth0:off i
2012-06-28 21:45:20
1022
转载 线程与进程的联系,线程的优缺点。
进程概念 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。 在Mac、Windows NT等采用微内核结构的操作系统中,进程的功
2012-06-28 21:40:43
10179
转载 嵌入式经典笔试题,经常遇到
1 . 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,
2012-06-28 21:34:16
2036
原创 关于字节对齐
以结构体内成员最大的字节对齐,当开辟的最大字节中能装下第二个成员时,就装在前一个字节中,若不能装下,则再开辟一个最大字节;在32位系统中,最大只能开辟4个字节(32位),所以long long 只开辟8个字节;比如:Struct book1{ Char a1; Short a2; Char a3;}u1;Sizeo
2012-06-28 21:29:07
766
转载 关于大小端存储
开头讲个有关大端小端的故事: 端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在
2012-06-28 21:27:59
6215
原创 毕业了...
毕业了,有的哭了,有的笑了.. 我的遗憾,只能永远成为遗憾了。。。。 别了,大学,我的同学、老师和路边的那些人。。。 从今以后,好好奋斗。。 弥补自己的遗憾, 不要成为一辈子的痛.... ===================== 那个妞,等我....
2012-06-19 23:23:10
691
原创 毕业旅行...
旅行里最难的部分,是出发的勇气“18岁读大学,问你理想是什么,你说环游世界;22岁读完大学,你说找了工作以后再去;26岁工作稳定,你说买了房再说;30岁有房了,你说等结婚带老婆一起去;35岁有了孩子,你说等孩子大一点再去;50岁孩子长大了,你说退了休再去吧……最后,你哪也没有去。”——凡事如此。 ========
2012-06-04 05:05:25
594
原创 内核等待队列(笔记)
可以用等待队列来实现进程的阻塞;操作方法:1、定义等待队列wait_queue_head_t my_queue;2、初始化等待队列int_waitqueue_head(&my_queue)3、定义并初始化等待队列DECLARE_WAIT_QUEUE_HEAD(my_queue)4、有条件睡眠(1)wait_event(queue, conditi
2012-05-17 23:08:08
550
原创 05-16
/*题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?*//*理解1:四个数字分别为1,2,3,4;理解2:有四个数字为0~9中的某四个,不确定;*/==========================#include #include //#define choiceint main(void){ int
2012-05-16 23:40:39
538
原创 ioctl设备控制(笔记)
用户层:原型:int ioctl(int fd, unsigned long cmd, ...)说明:其中原点表示可选参数,存在与否依赖于控制命令(第二个参数)是否涉及到与设备的数据交互;驱动层:原型:int 说明:cmd参数是从用户层传下来,可选参数arg以一个unsigned long 的形式传递(为一个整数或为一个指针),如果cmd命令不涉及数据传输,
2012-05-16 22:56:42
762
转载 公司不会告诉你的一些秘密......
1.入职时的工资高低不重要,只要你努力工作你会得到相应待遇的我估计几乎找过工作的人都听过这句话,当我们确定被聘用跟公司谈工资时,他们都会说“如果以后你业绩突出、努力工作,你的报酬也会相应增加的”,特别是当第一次找工作的时候大多数人会相信这些话, 但是千万别相信。刚入职时,你的工资就是你的全部(当然有一些岗位,比如销售或弹性工资的岗位除外,而且你入职以后大部分待遇都会跟着你的工资而浮
2012-05-15 23:11:35
1145
原创 自动创建设备文件
只需要在驱动初始化module_init(xxx_init)中的xxx_init()函数中调用class_create()和device_create()即可; 模板如下:#include ......static int xxx_init(void){ struct class *myclass; ...... /*自动创建设备文件*/
2012-05-15 23:01:03
454
原创 该长大了。。。
刚才每周例行给父母打电话问安,和父母说话的时候,父母说你的同学xx的父亲去世了,你晓得不? 自己转眼即将毕业走上社会,父母也开始老了,以后,真的得全靠自己了。 。。。
2012-05-13 21:18:41
530
原创 并发与竞态(笔记)
机制:一、semaphore机制,信号量1、定义信号量struct semaphore sem;2、初始化信号量void sema_init();void init_MUTEX(); //初始化互斥锁void init_MUTEX_LOCKED(); //初始化互斥锁DECLARE_MUTEX();DECLARE_MUTEX_LOCKED();
2012-05-03 23:13:12
636
转载 常用oops分析方法
插入内核模块时出现oops信息,一般调试方法: 在宿主机上: # arm-linux-objdump -D -S oops.ko > log 在生成的log文件中,根据insmod出现的PC指针,寻找相关函数和具体位置;==========转载别人的例子:http://blog.youkuaiyun.com/
2012-05-03 22:24:20
1208
转载 用户空间与内核空间数据交换的方式(转)
内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink一、引言 一般地,在使用虚拟内存技术的多任务系统上,内核和应用有不同的地址空间,因此,在内核和应用之间以及在应用与应用之间进行数据交换需要专门的机制来实现,众所周知,进程间通信(IPC)机制就是为实现应用与应用之间的数据交换而专门实现的,大部分读者可能对进程间通信比较了解,但对应用与内核之间
2012-05-03 21:34:01
2587
原创 内核增加自定义系统调用(一)
原理:(2.6.22.6内核) 应用程序先用适当的值填充寄存器,然后调用一个特殊的指令跳到内核某一个固定的位置,内核根据应用程序所填充的固定值来找到相应的函数执行; 适当的值: 在include/asm-arm/unistd.h中为每个系统调用规定了唯一的编号,称为 系统调用号; #define __NR_restart_s
2012-05-02 23:36:47
866
原创 2.6.22.6最小内核构建
/* mini2440 2M nor, 256M nand, dm9000ep*/1、修改交叉编译工具#vim Makefile找到: //第185行ARCH ?= $(SUBARCH)CROSS_COMPILE ?=改为:ARCH ?= armCROSS_COMPILE ?= arm-linux-
2012-05-01 00:28:06
633
原创 虚拟机开发环境搭建(tftp,nfs,samba,arm-linux-gcc)
系统版本:RHEL6.0 =============== tftp 配置 ===============1、安装相关软件包 #rpm -ivh xinetd-2.3.14-29.el6.i686.rpm #rpm -ivh tftp-0.49-5.1.el6.i686.rpm #rpm -ivh tftp-server-0.49-5.1.el6
2012-04-29 18:41:30
1360
原创 与内核参数交互实例
如何与内核模块进行参数交互,在2.6内核(include/linux/moduleparam.h)里面进行了函数定义;1、module_param(name, type, perm); name既是用户看到的参数名,又是模块内接受参数的变量; type表示参数的数据类型,是下列之一:byte, short, ushort, int, uint, long, ulong,
2012-04-27 23:03:50
771
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人