第20篇:Linux设备驱动程序入门<七>

**Q:**如何编写定时器中断驱动内核模块?

**A:**使用在FPGA中实现的间隔定时器FPGA Timer0,寄存器接口基地址为0x00002000,时钟频率100MHz,中断ID为72。调用这个定时器需要向Counter start value寄存器写入适当的值(有两个Counter start value寄存器,一个存储32位定时器值中的高16位,另一个存储低16位);通过程序将TO位写为0,即可将其值清零。如果Control寄存器中的ITO位为1,则每次设置TO位的时候,定时器将产生一个ARM中断。

本次实验编写的定时器中断驱动内核模块可实现在数码管上显示实时时钟,内核模块中使用到一个hardware timer模块,实现持续记录时间的功能,部分代码如下:

启动DE1-SoC-UP Linux系统,执行make命令编译生成模块文件然后加载模块,可观察到DE1-SoC开发板上的七段数码管HEX5~HEX0上显示实时时钟,从00:00:00开始计时,到59:59:99后重新返回00:00:00开始计时;在Terminal上使用rmmod命令移除内核模块后,exit程序会将七段数码管清零。

相关推荐
Genevieve_xiao2 小时前
【verilog】如何一小时成为verilog高手(并非
fpga开发
从此不归路3 小时前
FPGA 结构与 CAD 设计(第3章)上
ide·fpga开发
BB8=_=NiMotion3 小时前
使用Codesys系统的控制器时,定时器的时间精度不够怎么办
定时器·codesys系统·时间精度
Aaron15885 小时前
基于VU13P在人工智能高速接口传输上的应用浅析
人工智能·算法·fpga开发·硬件架构·信息与通信·信号处理·基带工程
碎碎思5 小时前
在 FPGA 上实现并行脉冲神经网络(Spiking Neural Net)
人工智能·深度学习·神经网络·机器学习·fpga开发
集芯微电科技有限公司7 小时前
替代HT6310/KP3310离线式AC-DC无感线性稳压器
数据结构·人工智能·单片机·嵌入式硬件·fpga开发
minglie18 小时前
Zynq上UART/IIC/SPI的24个实验-第0课:目录
fpga开发
FPGA小c鸡9 小时前
FPGA摄像头到屏幕完整链路:从OV5640采集到HDMI实时显示(附完整工程代码)
fpga开发
dai89101117 小时前
使用紫光同创FPGA实现HSSTLP IP支持的线速率
fpga开发
s090713618 小时前
XIlinx FPGA使用LVDS的电源与电平关键指南
fpga开发·xilinx·lvds