0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术嵌入式Linux应用程序自动载入驱动模块方法简介

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-14 11:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

英利公司推出的嵌入式Linux工控板EM9160针对一些扩展应用,实现了相应的驱动程序,包括有精简ISA总线的操作驱动、GPIO、I2C、SPI、LCD、KeyPad、CAN驱动等。这些设备的驱动程序可以在内核启动后,通过启动脚本来自动加载,但是这种方式往往不够灵活,因为在实际的应用中,客户往往会根据实际情况加以选择。

基于这种情况,我们把驱动程序模块分为两类,第一类驱动针对于嵌入式Linux工控板EM9160直接引出的接口,如ISA总线、GPIO、LCD、I2C、SPI等,则直接通过内核启动脚本来实现自动载入。第二类针对于利用ISA总线进行的扩展应用驱动,如:Keypad 、CAN应用等,对于这类驱动在内核启动时并没有自行载入,需要客户可根据实际情况进行选择。本文将着重介绍如何在应用程序中实现自动载入第二类驱动模块的方法。

英利所提供的嵌入式Linux工控板的所有驱动库文件均放置在文件系统/lib/modules/2.6.30目录下。

系统内核自动载入驱动功能模块:
/lib/modules/2.6.30/em9x60_sysinfo.ko
/lib/modules/2.6.30/em9x60_isa.ko
/lib/modules/2.6.30/em9x60_gpio.ko
/lib/modules/2.6.30/em9x60_irq.ko
/lib/modules/2.6.30/em9x60_pwm.ko
/lib/modules/2.6.30/em9x60_i2c.ko
/lib/modules/2.6.30/em9x60_lcd.ko

需要客户自行入载驱动功能模块:
/lib/modules/2.6.30/em9x60_keypad.ko
/lib/modules/2.6.30/em9x60_can.ko

在嵌入式Linux操作系统下,一般是利用insmod指令来实现向系统内核载入模块,如载入键盘驱动:
# insmod /lib/modules/2.6.30/em9x60_keypad

在嵌入式应用中,往往是需要自动运行模式,这就需要通过编程来实现。因此在应用编程代码中,利用C++中的构造函数以及析构函数可以很好地实现驱动功能模块的自动载入和自动卸载,下面是以键盘为例来加以说明。

定义一个class KEYManager键盘管理类,在该类中主要实现对键盘的响应功能。

其构造函数:
KEYManager::KEYManager( )
{
m_ExitThreadFlag = 0;
system( 'insmod /lib/modules/2.6.30/em9x60_keypad.ko' ); // 载入键盘驱动模块
}

对应的析构函数:
KEYManager::~KEYManager( )
{
system( 'rmmod em9x60_key' ); // 卸载键盘驱动模块
}

应用程序中,一旦定义了class KEYManager的实例就实现了键盘模块的自动载入。后续就可打开键盘设备文件,读取键码值,从而实现对键盘响应的功能。

在英利公司所提供的嵌入式Linux开发光盘上均有以上介绍的相关源码提供,以供客户参考。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    218006
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    36952
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一个面向单片机、事件驱动嵌入式开发平台介绍

    EventOS,是一个面向单片机、事件驱动嵌入式开发平台。它主要有两大技术特色:一是事件驱动,二是超轻量。EventOS以及其母项目EventOS,目标是开发一个企业级的
    发表于 12-05 06:26

    ARM嵌入式这样学

    )话题大热,Arm也推出神经网络机器学习软件 Arm NN,可在基于Arm的高能效平台上轻松构建和运行机器学习应用程序,未来嵌入式行业也将不断革新,嵌入式市场有所可期。 据知乎某15年从业人员看
    发表于 12-04 07:48

    嵌入式需要掌握哪些核心技能?

    嵌入式需要掌握哪些核心技能? 若想通过学习嵌入式技术提升就业竞争力,需重点掌握C语言、嵌入式硬件架构、RTOS/Linux开发、通信协议四
    发表于 10-21 16:25

    嵌入式达到什么水平才能就业?

    :包括GPIO、定时器、中断、ADC 等外设的配置与调试,能实现如温湿度采集、电机控制等功能掌握嵌入式 Linux 驱动开发基础:能编写简单字符设备驱动,实现设备的初始化、读写操作,会
    发表于 09-15 10:20

    PCB嵌入式功率模块介绍

    电子发烧友网站提供《PCB嵌入式功率模块介绍.docx》资料免费下载
    发表于 09-09 16:19 2次下载

    嵌入式从入门到进阶,怎么学?

    嵌入式从入门到进阶,怎么学? 嵌入式学习的核心是 “软硬结合的技术壁垒”,科学分层才能高效突破。以下是从入门到高阶的精简路线,帮你避开弯路: 1、基础奠基层:构建技术底座 C 语言聚焦
    发表于 09-02 09:44

    Linux嵌入式和单片机嵌入式的区别?

    :使用Linux操作系统,可以运行各种复杂的应用程序驱动程序。 4. 资源需求 : 单片机嵌入式 :对硬件资源的需求较低,通常只需要一个单片机芯片,内存和存储空间较小。
    发表于 06-20 09:46

    飞凌嵌入式ElfBoard ELF 1板卡-文件系统简介

    9.1 文件系统概念文件系统通常提供目录或文件夹用于记录文件,在很多系统中目录本身也是文件,在这些系统中,目录是管理文件系统结构的系统文件。从文件组织结构上来说,嵌入式Linux文件系统与普通PC
    发表于 06-19 17:22

    嵌入式开发入门指南:从零开始学习嵌入式

    基础 3. 学习路径推荐第一阶段:熟悉开发环境(如Keil、IAR、STM32)第二阶段:掌握裸机编程与驱动开发第三阶段:学习RTOS(实时操作系统)如FreeRTOS第四阶段:深入理解Linux嵌入式
    发表于 05-15 09:29

    Linux的作用

    。 2、嵌入式系统:Linux可以被嵌入到各种嵌入式设备中,如智能路由器、智能电视等。它提供了一个灵活的平台,可以根据设备的需求进行定制和优化。 3、个人电脑操作系统:
    发表于 04-04 01:57

    硬核升级!华清远见STM32MP157驱动开发课程助力嵌入式Linux底层开发入门进阶

    嵌入式Linux系统开发中,驱动程序开发是一项关键技术,它作为硬件与软件之间的桥梁,实现了操作系统对硬件设备的控制。相较于嵌入式
    的头像 发表于 04-03 16:40 710次阅读
    硬核升级!华清远见STM32MP157<b class='flag-5'>驱动</b>开发课程助力<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>底层开发入门进阶

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之helloworld驱动

    是展示驱动程序的基本结构和加载过程。 源码编写 (一)首先包含头文件 #include // 包含模块相关函数的头文件 #include // 包含内核相关函数的头文件 #include// 包含初始化
    发表于 03-12 10:35

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux设备驱动的分类

    内核模块嵌入Linux内核中,位于内核空间。它们直接与内核进行交互,通过内核提供的接口与硬件设备进行通信和控制。用户空间的应用程序通过系统调用和设备文件接口与设备
    发表于 03-12 10:20

    飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之helloworld驱动

    驱动程序的基本结构和加载过程。源码编写(一)首先包含头文件#include // 包含模块相关函数的头文件#include // 包含内核相关函数的头文件#include// 包含初始化和清理函数
    发表于 03-12 10:15

    飞凌嵌入式ElfBoard ELF 1板卡-Linux设备驱动的分类

    内核模块嵌入Linux内核中,位于内核空间。它们直接与内核进行交互,通过内核提供的接口与硬件设备进行通信和控制。用户空间的应用程序通过系统调用和设备文件接口与设备
    发表于 03-10 17:00