FL2440驱动添加(1):hello world 驱动模块添加

发布者:HarmoniousVibes最新更新时间:2024-07-24 关键字:FL2440  驱动模块 手机看文章 扫描二维码
随时随地手机看文章

试试第一个hello world模块添加:

1,在添加drivers/char/hello.c

/*********************************************************************************
 *      Copyright:  (C) 2014 zhouguangfeng
 *                  All rights reserved.
 *
 *       Filename:  hello.c
 *    Description:  This file 
 *                 
 *        Version:  1.0.0(08/09/2014)
 *         Author:  zhouguangfeng
 *      ChangeLog:  1, Release initial version on '08/09/2014 06:23:18 PM'
 *                 
 ********************************************************************************/
#include <linux/module.h>
#include
#include

MODULE_LICENSE ('Dual BSD/GPL');

static int __init hello_init (void)
{
    printk (KERN_INFO 'Hello worldn');
    return 0;
}

static void __exit hello_exit (void)
{
    printk (KERN_INFO 'Goodbye worldn');
    return;
}

module_init (hello_init);
module_exit (hello_exit);

其中 printk是内核特有的打印函数,类似与printf,只是它不依赖库文件,KERN_INFO为

打印优先级


2,修改drivers/char/Kconfig文件,添加在make menuconfig的选项

#
# Character device configuration
#


menu 'Character devices'


source 'drivers/tty/Kconfig'


# add  by zhouguangfeng 2014.8.9 for 'Hello world' 

config FL_HELLO
    tristate 'CCTE2440 Hello Driver'
    depends on ARCH_S3C2440
    help
    FL2440 Hello Module.


3,修改drivers/char/Makefile,编译添加的hello.c

obj-$(CONFIG_FL_HELLO) += hello.o


4,make menuconfig选项

[*] Enable loadable module support  ---> 

[*]   Module unloading   //需要支持,否则已经加载的模块无法卸载载


  Device Drivers  --->

Character devices  --->

FL2440 Hello Driver  //刚才添加的Kconfig选项,这里编译为模块


5,make之后,下载内核与文件系统,挂在hello.ko模块

Copyright (C) 2014 zhouguangfeng
dm9000 dm9000 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
zhouxiaoxing login: root
>: ls
apps     data     etc      info     lib      mnt      root     sys      usr
bin      dev      hello    init     linuxrc  proc     sbin     tmp      var
>: ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: seq=0 ttl=64 time=2.592 ms
64 bytes from 192.168.1.1: seq=1 ttl=64 time=0.685 ms
64 bytes from 192.168.1.1: seq=2 ttl=64 time=0.658 ms

--- 192.168.1.1 ping statistics ---
9 packets transmitted, 9 packets received, 0% packet loss
round-trip min/avg/max = 0.658/0.896/2.592 ms

>: tftp -gr hello.ko 192.168.1.3
hello.ko             100% |*******************************|  2365   0:00:00 ETA
>: ls
apps      dev       hello.ko  lib       proc      sys       var
bin       etc       info      linuxrc   root      tmp
data      hello     init      mnt       sbin      usr

>: insmod hello.ko 

Hello world

>: rmmod hello 

Goodbye world


关键字:FL2440  驱动模块 引用地址:FL2440驱动添加(1):hello world 驱动模块添加

上一篇:内核移植和文件系统制作(2):linux内核最小系统和initramfs文件系统
下一篇:内核移植和文件系统制作(3)Ramdisk简介和常见问题

推荐阅读最新更新时间:2026-03-20 10:38

linux-3.0内核移植到fl2440开发板(以MINI2440为模板)
我们的fl2440开发板使用的是s3c2440的芯片,与MINI2440十分相似,因此需要改动的地方不多,移植也比较容易。 1. $ sudo tar -xjf linux-3.0.tar.bz2 2. 进入 linux-3.0,修改顶层Makefile 配置CPU类型和交叉编译器(195,196行) ARCH ?= arm CROSS_COMPILE ?= /opt/buildroot-2011.11/arm920t/usr/bin/arm-linux- 添加zImage头制作(559行后面) cp arch/arm/boot/zImage . -f /home/weishusheng/kernel/linux-3
[单片机]
U-Boot在FL2440上移植(四)----支持网卡DM9000和烧写yaffs文件系统
一 支持网卡芯片DM9000 在driver下,有网卡驱动DM9000x.c 和 DM9000x.h DM9000接在BANK4,位宽16 在include/configs/TX2440.h中设置网卡基地址: 在56行处,将CS8900的定义改成: #define CONFIG_DRIVER_DM9000 1 #define CONFIG_DM9000_BASE 0x20000300 #define DM9000_IO CONFIG_DM9000_BASE #define DM9000_DATA (CONFIG_DM9000_BASE + 4) #define CONFIG_DM9000_USE_16BIT
[单片机]
U-Boot在FL2440上移植(三)----支持NAND Flash
一 支持NAND Flash 1. 首先在配置文件 include/config/fl2440.h 的宏 CONFIG_COMMANDS 中增加 CFG_CMD_NAND, #define CONFIG_COMMANDS (CONFIG_CMD_DFL | CFG_CMD_CACHE | CFG_CMD_NAND | 2.在配置文件 include/configs/fl2440.h 中增加如下3个宏 #define CFG_NAND_BASE 0 //无实际意义:基地址,在board_nand_init中重新定义 #define CFG_MAX_NAND_DEVICE 1 //NAND Flash设备数目为1
[单片机]
opencv在fl2440上的移植
linux2.6.28 arm-linux4.3.2 1.安装opencv2.0 下载地址http://sourceforge.net/projects/opencvlibrary/ 解压OpenCV-2.0.0.tar.bz2 tar xvf OpenCV-2.0.0.tar.bz2 配置 ./configure --host=arm-linux --without-carbon --without-quicktime--without-1394libs --without-ffmpeg --without-python --without-swig--without-gtk --enable-static --enable-
[单片机]
linux-2.6.32在mini2440开发板上移植 添加触摸屏驱动程序
在内核中添加触摸屏驱动程序 编者:linux2.6.32并没有带S3C2440触摸屏驱动程序,需要自己实现。而在此的触摸屏驱动程序时作为一个输入设备来实现的。在linux中,对于输入设备而言,内核专为其设计了输入子系统,由核心层处理公共的工作。因为对于输入设备而言,只是中断、读键值/坐标值是与设备相关的,其余的如输入事件的缓冲区的管理以及字符设备驱动的file_operations接口则是输入设备通用的。所以在此是在输入子系统的框架下进行编写触摸屏驱动程序。对于这个驱动的移植以及讲解,参考了网上的一些文章,一部分摒弃了手册。 1 在内核中添加触摸屏驱动程序 Linux-2.6.32.2 内核也没有包含支持S3C2440 的触摸屏
[单片机]
linux-2.6.32在mini2440开发板上移植 添加ADC驱动程序
添加ADC驱动程序 编者:由于内核没有支持S3C2440的ADC驱动,在这里增加ADC驱动。友善的手册对这个介绍的还算相当详细,所以直接按照手册进行。里面的代码也有详细的注释。ADC驱动属于字符型设备,在这里以杂项设备也有的翻译为混杂设备,进行实现。 1 、关于S3C2440 的ADC 和触摸屏接口 Linux-2.6.32.2 内核并没有提供支持S3C2440 的ADC 驱动程序,因此我们自行设计了一个,这个驱动比较简单,属于字符设备,它位于drivers/char 目录下,驱动程序的文件名为:mini2440_adc.c。在S3C2440 芯片中,AD 输入和触摸屏接口使用共同的A/D 转换器,见2440 芯片手册第16
[单片机]
linux-2.6.32在mini2440开发板上移植 <font color='red'>添加</font>ADC<font color='red'>驱动</font>程序
S3C2416 Linux2.6.21 驱动移植--添加UART3 及波特率设置bug消除
一,移植环境 (红色粗字体字为修改后内容,蓝色粗体字为特别注意内容) 1.主机环境:Virtualbox 下ubuntu-10.10 2.编译编译环境:arm-linux-gcc v4.4.3 3.uboot : U-Boot 1.3.4(友坚提供) 4.linux内核版本:2.6.21.5 5.硬件平台:采用友坚UT2416CV02核心板开发的平台 6.参考: linux内核支持S3C2416的UART3 (http://www.itkee.com/os/detail-1677.html ) S3C2416 User's Manual, Revision 1.10 二,添加UART3 S
[单片机]
FL2440(3) 裸板程序
程序主要是JZ2440的,只是改了一下led.c,下载后发现led闪得非常快. head.S @************************************************************************* @ File:head.S @ 功能:设置SDRAM,将第二部分代码复制到SDRAM,设置页表,启动MMU, @ 然后跳到SDRAM继续执行 @************************************************************************* .text .global _start _start: ldr sp,
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved