美文网首页
02.嵌入式程序设计

02.嵌入式程序设计

作者: 柏666 | 来源:发表于2019-07-27 18:11 被阅读0次

一、硬件驱动

        1、硬件设备与开发板通过引脚相连,进行数据传输。同一类型硬件有不同厂家。为了更好的兼容,通常将软硬件模块化,通过各种接口进行数据传输和功能实现。微服务、组件、文件、类、函数等因此应运而生。需要抽象的点如下:

        ①、软件层面上,需要实现的方法或功能。

        ②、软件操作硬件,需要执行动作的接口。一般使用结构体指针。参考硬件文档对硬件编程。

        ③、硬件对于操作自身的方法。 具体实现于其独立文件中,封装在结构体或类中供上层调用。

        2、原理及操作步骤(结构体存放硬件信息及函数指针;指针数组存放指针的数组,用于调用;函数指针调用函数操作硬件):

①、定义结构体,供系统使用:

typedef struct module {

    char name[];

    bool (*function)(int param);

} moduleT, *p_module;

②、系统中使用结构体定义的指针数组:(ID可以通过系统读取,也可交给合入模块自己验证)

static p_module module_list[] = {

    &g_module1,

    &g_module2,

        ... ...    };

③、在系统中使用:

moduleT g_current_module = module_list[index];    // index 为读取到的ID在数组中的对应


二、中断注册

        1、通过中断关联的指针数组,直接注册及使用中断函数。无需在代码中重复定义中断。指针数组存放指针的数组,用于调用指针;函数指针调用函数。可以直接调用,或者作为回调函数。

①、定义函数指针,用其定义指针数组:

typedef void (*irq_func)(int); 

②、定义指针数组,存放产生中断对应的处理函数:

irq_func irq_array[num];    //num 为中断个数

③、定义注册函数,注册中断对应的处理函数:

void register_irq(int irq, irq_func function) {    // irq为中断号

    irq_array [ irq ] = function;    // 在数组中,存放函数指针

    INTMSK &= ~(1 << irq);    // 清除掩码,使能中断

}

        2、使用:

①、在设置中断源处,注册中断,为指针数组赋值:

register_irq(num, function);    // num 为中断号,function为中断处理函数

②、在中断处理函数处,先分辨中断源,再把中断源做参数传入函数指针数组:

irq_array[bit1](bit2);    // 调用数组中第[bit1]个函数,并传入参数(bit2)

相关文章

  • 数据库编程

    数据库编程 嵌入式 SQL 嵌入式 SQL 的处理过程将 SQL 语句嵌入到程序设计语言中 , 如 C,C++,J...

  • 阅读书单

    《嵌入式Linux应用开发完全手册》 《抛弃c程序设计中的谬误与恶习》 《c陷阱与缺陷》 《征服c指针》 《c专家...

  • 2018-05-10

    今天是嵌入式第二天,主要讲的是: (1)程序设计的实质:数据表示和数据处理 (2)数据类型:确定申请房间的大小, ...

  • Linux嵌入式系统开发,嵌入式Linux开发教程

    嵌入式有不少组合名词,例如嵌入式系统,嵌入式软件,Linux嵌入式,Android嵌入式,嵌入式Web,等等。通常...

  • 细说嵌入式驱动程序设计

    嵌入式系统驱动程序的开发有别于WIndows或Linux。后者除了必须了解新设备的硬件特性,把控制硬件的程序尽快完...

  • 阿里P9整理出千页笔记:Java程序设计与数据结构基础+进阶

    Java是一门伟大的程序设计语言,同时,它还指基于Java语言的从嵌入式开发到企业级开发的平台。从20世纪90年代...

  • C语言中内存分配

    C语言中内存分配 在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是...

  • 论C语言如何有效的管理内存资源

    在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序...

  • 嵌入式系统的组成

    1.嵌入式系统体系架构图 2.嵌入式系统的硬件架构 嵌入式处理器 嵌入式处理器是各嵌入式系统的核心部件,其功耗、体...

  • 计算机二级考试

    C语言程序设计、VB语言程序设计、Java语言程序设计、Access数据库程序设计、C++语言程序设计、MySQL...

网友评论

      本文标题:02.嵌入式程序设计

      本文链接:https://www.haomeiwen.com/subject/sswurctx.html