编写 Hello world 模块驱动

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/niuniumenghua/article/details/6496641

编写 Hello world 模块驱动

华清远见-嵌入式领域著名讲师  O(_)O  牛牛猛

点击链接加我好友!

http://student.csdn.net/invite.php?u=111047&c=758a60d66d3a92d1

欢迎大家去我CSDN博客上踩踩

我的个人主页

晚上没事,同学邀我写个模块的实验手册,拿出来和大家分享一下

(1) 模块动态加载驱动方式

在内核源码的“drivers/char/”目录下新建一个名为“hello .c”的文件,内容如下:

 

#include <linux/module.h>

#include <linux/kernel.h>

#include <linux/init.h>

 

MODULE_LICENSE ("GPL");

 

static int __init hello_init (void)

{

   printk (KERN_INFO "Hello world/n");

   return 0;

}

 

static void __exit hello_exit (void)

{

   printk (KERN_INFO "Goodbye world/n");

}

 

module_init (hello_init);

module_exit (hello_exit);

   修改Makefile里面的内核源码包的路径,这里我们必须用到一个已经编译好的内核的源码

这里我们用了

KERNELDIR ?= /mnt/mengyang/source/kernel/linux-2.6.33

根据自己的实际情况修改,一定确保你的内核可以编译通过,内核可以正常运行!

在命令行里运行make命令,顺利的会生成*.ko文件。将*.ko文件复制到nfs目录,或是其他的存储设备。

在命令行里运行插入模块的命令

ismod *.ko

顺利的可以看到init函数将会被调用。

同样,运行

rmmod *.ko

顺利的可以看到clean函数被执行了。

执行上面命令时,可能报错误rmmod: chdir(2.6.33.2-TE2440): No such file or directory

这是由于busybox 1.13.1导致的,,原来是现在的内核模块在插入卸载时都会要转到/lib/modules/内核版本号/ 这个目录里。 所以只要建立这个目录并且把要使用的模块*.ko文件复制到这个目录就行了。

2)静态的加载驱动

在内核源码中添加对hello 驱动的支持

修改drivers/char/目录下的“Kconfig”文件,在7 行添加如下内容:(红色部分所示)

#

# Character device configuration

#

menu "Character devices"

config CCTE_HELLO

tristate "CCTE2440 Hello Driver"

depends on ARCH_S3C2440

help

CCTE2440 Hello.

修改同目录下的“Makefile”文件,在合适的行添加如下内容:

#

# Makefile for the kernel character device drivers.

 

#

#

# This file contains the font map for the default (hardware) font

#

obj-$(CONFIG_ CCTE_HELLO) += hello.o

 

配置内核

然后输入:#make menuconfig,然后配置如下:

Device Drivers --->

Character devices --->

<*> CCTE2440 Hello Driver

将其选择为“M”(模块),然后保存配置,编译出内核镜像烧写到开发板中。或是下载到开发板上运行。

 

 

展开阅读全文

typeScript开发环境配置、hello world编写

06-23

<p>n </p>n 什么是TypeScript?n n <p style="color:#333333;">n TypeScript是JavaScript的加强版,它给JavaScript添加了可选的静态类型和基于类的面向对象编程,它拓展了JavaScript的语法。n </p>n <p style="color:#333333;">n 不过,你不必担心TypeScript跟浏览器不兼容,因为在编译时,它产生的都是JavaScript代码。n </p>n <p style="color:#333333;">n <span style="font-size:16px;"><strong>为什么要学TypeScritpt?</strong></span>n </p>n <p style="color:#333333;">n </p><p style="color:#333333;">n TypeScript是一门很有前景和钱景的语言;n </p>n <p style="color:#333333;">n 它能大幅的提高工作效率,并且减少错误;n </p>n nn<p>n <span style="font-size:16px;color:#333333;"><strong>这堂课我们能学到什么</strong></span><span style="font-size:16px;color:#333333;"><strong>?</strong></span>n</p>n<p>n <span style="color:#333333;">随着前端行业越来越受到重视,前端的逻辑也越来越复杂,对前端从业者的职业要求也越来越高,</span><span style="color:#333333;">Vue</span><span style="color:#333333;">、</span><span style="color:#333333;">Angular</span><span style="color:#333333;">、</span><span style="color:#333333;">React</span><span style="color:#333333;">和一些新的框架层出不穷,而作为</span><span style="color:#333333;">Angular</span><span style="color:#333333;">等框架的推荐语言</span><span style="color:#333333;">TypeScript</span><span style="color:#333333;">也在市场中得到了认可和追捧,不管是前端、还是游戏引擎、以及一些大型项目开发都中开始展露头角。但是这方面学习资源相对较少。</span>n</p>n<p>n <span style="color:#333333;">n </span></p><p>n <span style="font-size:16px;"><strong>课程特点:</strong></span>n </p>n <p>n <span style="color:#333333;">本堂课程通过深入浅出的讲解,幽默风趣的风格; 让大家在3个小时的课程中能够掌握大部分TypeScript的核心知识; 同时能够使用TypeScript进行React等框架的项目开发; 为大家的学习和在工作中使用TypeScript打下坚实的基础。</span>n </p>n<strong>课程大纲:</strong>nn<p>n 1.TS的初步配置n</p>n<p>n 2.TS 数据类型 any 枚举n</p>n<p>n 3.函数的参数和返回值类型n</p>n<p>n 4.类非常重要 非常重要n</p>n<p>n 5.静态类属性和方法 Mathn</p>n<p>n 6.泛型n</p>n<p>n 7.模块化 systemjsn</p>n<p>n 8.项目n</p>n<p>n <span style="font-size:12px;">TS+react+webpack结合的工作流应</span>n</p>n<p>n <span style="font-size:12px;color:#333333;">类型管理</span><span style="font-size:12px;color:#333333;"> js-&gt;tsx 2.0</span>n</p>n<p>n <span style="font-size:12px;color:#333333;">如何用</span><span style="font-size:12px;color:#333333;">TS</span><span style="font-size:12px;color:#333333;">开发</span><span style="font-size:12px;color:#333333;">react-&gt;TSX(</span><span style="font-size:12px;color:#333333;">难点</span><span style="font-size:12px;color:#333333;">-&gt;</span><span style="font-size:12px;color:#333333;">官网</span><span style="font-size:12px;"> </span><span style="font-size:12px;color:#333333;">项目</span><span style="font-size:12px;color:#333333;">)</span>n</p>n<p>n <span style="font-size:12px;color:#333333;">工作流</span><span style="font-size:12px;color:#333333;"> package.json -&gt; npm start npm run build </span>n</p>n<p>n <span style="font-size:16px;color:#333333;"><strong>适用人群:</strong></span>n</p>n<p>n <span style="color:#333333;">1.Typescript</span><span style="color:#333333;">零基础想掌握</span><span style="color:#333333;">ts</span><span style="color:#333333;">正确学习姿势和入门的初学者</span>n</p>n<p>n <span style="color:#333333;">2.</span><span style="color:#333333;">经验丰富的</span><span style="color:#333333;">jser</span><span style="color:#333333;">想拓宽自己知识掌握</span><span style="color:#333333;">ES6</span><span style="color:#333333;">和</span><span style="color:#333333;">ES7</span><span style="color:#333333;">新功能的从业者</span>n</p>n<p>n <span style="color:#333333;">3.</span><span style="color:#333333;">想在工作和项目中使用</span><span style="color:#333333;">ts</span><span style="color:#333333;">结合</span><span style="color:#333333;">VAR</span><span style="color:#333333;">框架的人员</span>n</p>n<p>n <span style="color:#333333;">4.</span><span style="color:#333333;">有志于成为全栈开发人员却苦于无法入门后端和跟后端沟通不畅的开发者</span>n</p>n<p>n <span style="color:#333333;">5.</span><span style="color:#333333;">想深入了解和使用</span><span style="color:#333333;">angular</span><span style="color:#333333;">的人员</span>n</p>

没有更多推荐了,返回首页