首页 > 行业新闻 > 单片机程序如何与硬件交互通讯?

N
ews

海翔微资讯

联系海翔微电子
咨询热线: 0755-23209027

总机:0755-23209027

传真:

Q Q:2641686590

新闻中心

单片机程序如何与硬件交互通讯?

发布时间:2022-04-23 03:00:00来源:http://szhxwdz.com/news797969.html

单片机程序如何与硬件交互通讯?

单片机要与硬件交互,单片机程序需要与内核进行通信,并且在此之前,它必须通知内核有关内核的存在。这是通过“init”调用实现的,通过该调用单片机程序在内核中注册并分配了所需的内存。在系统关闭时,将使用“exit”调用取消注册单片机程序,这还会释放单片机程序占用的所有资源。用于定义“init”和“exit”功能的调用是:

module_init(init_function_name);

module_exit(exit_function_name);

我们可以编写自己的init和exit函数,同时编写分别由上述两个调用设备的单片机程序。最简单的init函数如下:

static int init_function_name(void)

{

printk(KERN_ALERT“ Hello”);

return 0;

}

同样,我们也可以编写退出函数。如您所见,为了获取内核日志,我们使用与C函数printf()类似的printk()函数,但需要一个可选的特殊日志级别字符串(此处为KERN_ALERT–日志级别1)来指示严重性类型错误消息。共有八个日志级别,默认值为KERN_WARNING(日志级别4)。

触控芯片,HR7P169芯片
设备单片机程序中最重要的组件之一是文件操作(简称“fops”)结构。此结构指定为其编写单片机程序的设备的功能。它包含指向为设备支持的操作而编写的功能的指针。基本的fops结构可以描述如下:

static struct file_operations fops =

{

.read = my_read;

.write = my_write;

.open = my_open;

.release = my_release;

}

上面的定义是,每当设备必须读取某些内容时,都会调用my_read函数(由开发人员编写)。同样,指向其他功能的指针是针对它们提及的功能的相应名称。

如果要为其编写单片机程序的设备支持中断功能,则单片机程序必须在init函数中注册中断服务程序(ISR),只要在设备中收到中断,该函数就会被调用。这是通过使用需要中断处理程序的内核函数request_irq()来实现的,然后启用中断线以接收中断。另一方面,当单片机程序卸载时,内核函数free_irq()用于释放中断处理程序和中断行。我们将在以后的帖子中详细介绍它们。

  • 服务热线:0755-23209027  E-Mail:zangqj_hxw@163.com
  • QQ:2641686590
  • 公司地址:深圳市宝安区西乡街道金海路金海商务大厦1栋6层602室
  • 热门城市推广:深圳 广东 上海 江苏 浙江 江西 福建 湖北
海翔微电子

海翔微 Powered by365系统 备案号:粤ICP备19126928号