buzaiyouyu 发表于 2012-3-5 10:32:41

在linux驱动中“幸福一家”是这样子的。苦逼的工科学生。:(

*人生短短几个秋,常掺喜怒哀与愁。

*名利财色身外物,唯有真爱相永恒。

*/



#include <你的父母.h>

#include <我的父母.h>

#include <你的朋友.h>

#include <我的朋友.h>

#include <你的事业.h>

#include <我的事业.h>







struct 我们幸福一家

{

       struct cdev;

       int 家庭核心;

       int 我得私有;

       int 你得私有;

       int 家庭宝贝;

}



static irqreturn_t 家庭宝贝_interrupt(int irq, void *dev_id)

{

    int 宝宝状态;

       if(宝宝状态 == 童年)

            printk("我们一起教他/她,让他/她快快乐乐的成长,渐渐懂事再长大......");

       if(宝宝状态 == 上学)

            printk("你来辅导功课,我来负责课外活动,让他/她辨清是非");

       if(宝宝状态 == 长大成人)

            printk("我们快乐的看着他/她凭自己的能力创出一片天");

       return OK;

}





int 咱家开始_open(struct inode *inode, struct file *filp)

{

    char 你父母状态,我父母状态 ;

       if(你父母状态 == "同意"|| 我父母状态 == "同意")

         咱俩直奔民政局领证结婚;

       else if(大伯二姑三妈四舅五婶六姨 == "不同意")

            咱俩飞奔去民政局领证结婚;

       else

            咱俩狂奔加百米冲刺去民政局领证结婚;

       request_irq(我们幸福一家.家庭宝贝, 家庭宝贝_interrupt, 家庭宝贝,

                         家庭宝贝, (void *)&家庭宝贝]);



    return      OK;

}



static int 咱家事务_ioctl(struct inode *inodep, struct file *filp, unsigned

int cmd, unsigned long arg)

{

       switch(cmd)

       {

       case 我想你时:

            printk("我爸妈会说:让她来咱家住几天呗!");

            break;

       case 你无聊时:

            printk("你爸妈会自然得说:去给那臭小子打电话,让他带你出去玩去!");

            break;

       case 你不高兴时:

            printk("我会想尽办法逗你开心,为你加油鼓劲");

            break;

       case 你饿时:

            printk("我会给你做饭,哪怕切菜割破手");   

            break;

       case 咱孩子饿了:

            printk("你给孩子喂奶");            

            break;

       case 咱孩便便了:

            printk("我给宝宝洗");         

            break;   

       default:

            printk("不管遇到多大的困难挫折和风雨,我们都会快乐的一起挺过去");



       }

       return OK;

}





int 咱俩夕阳红_release(struct inode *inode, struct file *filp)

{

       printk("当咱俩年老满脸皱纹时,你扶着我,我搀着你,坐在湖边的长凳上一起看夕阳");

    return OK;

}







static const struct file_operations 咱家事务集合 =

{

       .owner = THIS_MODULE,

       .open= 咱家开始_open,

       .ioctl = 咱家事务_ioctl,

       .release =咱俩夕阳红_release,

      

}





/*设备驱动模块加载函数*/

int family_init(void)

{

int 恋爱;

int 继续追;

dev_t我们家 = MKDEV(你,我);



/* 申请设备号*/

if (你同意)

    恋爱 = register_chrdev_region(我们家 , 1, "我们幸福一家");

else/* 动态申请设备号 */

{

      

       继续追 = alloc_chrdev_region(&我们家 , 0, 1, "我们幸福一家");

    while(!恋爱)

            继续追++;

}



   // return 恋爱;

   

/* 申请结婚*/

我们幸福一家 = kmalloc(sizeof(struct 我们幸福一家), GFP_KERNEL);



memset(我们幸福一家, 0, sizeof(struct 我们幸福一家));



cdev_init(&我们幸福一家->cdev, &咱家事务集合);

我们幸福一家->家庭核心 = 你;

我们幸福一家->我得私有 = 你;

我们幸福一家->你得私有 = 我;

我们幸福一家->家庭宝贝 = 咱孩子;

cdev_add(&我们幸福一家->cdev, 我们家, 1);



printk("我们幸福一家");

}



viod family_exit(void)

{

       printk("风风雨雨同船渡;朝朝暮暮比翼飞;不离不弃。我永远爱你");

}



module_init(family_init);

module_exit(family_exit);

MODULE_AUTHOR("buzaiyouyu001 <522585109@qq.com>");

lengshuicha 发表于 2012-3-5 10:48:17

请提供该程序的HEX文件and原理图

lengshuicha 发表于 2012-3-5 10:52:08

靠,这个程序有一个最大的bug,无main函数呢。----也许是我眼花,没有看见。

snkaka 发表于 2012-3-5 10:58:30

回复【2楼】lengshuicha冷水茶
靠,这个程序有一个最大的bug,无main函数呢。----也许是我眼花,没有看见。
-----------------------------------------------------------------------

linux driver module模式 就是这个样子,没有main,内核是一个大的main,driver作为一个module
插入到内核

bbs2009 发表于 2012-3-5 11:13:24

XA144F 发表于 2012-3-5 11:13:26

应该改改:
static irqreturn_t 家庭宝贝_interrupt(int irq, void *dev_id)

{

    int 宝宝状态;

       if(宝宝状态 == 童年)

            printk("送进外国语幼儿园");

       if(宝宝状态 == 上学)

            printk("送进外国语中学、北京大学");

       if(宝宝状态 == 长大成人)

            printk("考公务员");
       if(宝宝状态 == 成家)

            printk("非诚勿扰");

       return OK;

}

523335234 发表于 2012-3-5 11:27:46

回复【5楼】XA144F
-----------------------------------------------------------------------

bedlamitemcu 发表于 2012-3-5 11:54:38

不错的帖子

lusson 发表于 2012-3-5 12:52:00

爸妈不同意还飞奔领证??

hyz_avr 发表于 2012-3-5 13:04:16

回复【4楼】bbs2009
能用中文作 变量名,或函数名吗 ?
否则神马都是浮云,逗乐而已。
lz 的可以吗?
-----------------------------------------------------------------------

支持unicode的话就可以.下面的程序刚刚在c++builder2010中测试过.

void 函数_1(String *str)
{
*str = "字符串" ;
}

void __fastcall TForm1::btn1Click(TObject *Sender)
{
   String 变量;

   函数_1(&变量) ;

   ShowMessage(变量);

}

xjjiang 发表于 2012-3-5 13:46:22

有意思!

xue_pic 发表于 2012-3-5 15:35:04

有意思的帖子。

simon51 发表于 2012-3-5 16:12:25

make:“幸福一家”.....error! build failed!

spely 发表于 2012-3-5 16:41:10

有意思~

bbs2009 发表于 2012-3-5 17:55:46

Forever 发表于 2012-3-5 18:01:36

有意思

mcuprogram 发表于 2012-3-5 18:03:06

见识了

lisly 发表于 2012-3-7 14:45:30

struct 我们幸福一家

{

       struct cdev;

       int 家庭核心;

       int 我得私有;

       int 你得私有;

       int 家庭宝贝;

       spinlock_t 我的心锁;

}
加把心锁,我是你的,只有你才拥有我。

yl604922959 发表于 2012-3-7 15:09:02

没有对象的飘过

yelvAVR 发表于 2012-3-7 16:36:33

回复【2楼】lengshuicha 冷水茶
靠,这个程序有一个最大的bug,无main函数呢。----也许是我眼花,没有看见。
-----------------------------------------------------------------------

回复【3楼】snkaka 卡卡
回复【2楼】lengshuicha冷水茶
靠,这个程序有一个最大的bug,无main函数呢。----也许是我眼花,没有看见。
-----------------------------------------------------------------------
linux driver module模式 就是这个样子,没有main,内核是一个大的main,driver作为一个module
插入到内核
-----------------------------------------------------------------------

回复【13楼】simon51 白脸
make:“幸福一家”.....error! build failed!
-----------------------------------------------------------------------

回复【15楼】bbs2009
回【9楼】 hyz_avr
支持unicode的话就可以.下面的程序刚刚在c++builder2010中测试过.
-------------------------------------------------------------
长见识了。
我试过 qt+gcc4.4.0不行。

-----------------------------------------------------------------------

额   都说了我就不用说了!

_laoy 发表于 2012-8-24 09:39:12

有才 不过人生要是能写成程序来运行 我还是希望跑飞的好 要不就是循环到死 。。
页: [1]
查看完整版本: 在linux驱动中“幸福一家”是这样子的。苦逼的工科学生。:(