第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程序会将七段数码管清零。

相关推荐
坏孩子的诺亚方舟41 分钟前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
FPGA小徐6 小时前
入门 CNN 结构全解析|从流程图理论到 FPGA Verilog 硬件实现(含习题带讲解)
fpga开发
FPGA小徐7 小时前
FPGA 数字信号处理:并行 FIR 与串行滤波器设计原理、对比与完整 Verilog 实现
fpga开发
Saniffer_SH1 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
zlinear数据采集卡1 天前
双核架构深度解析:ARM+FPGA如何让数据采集卡实现500Ksps高性能?
arm开发·fpga开发·架构
9527华安1 天前
FPGA实现GTH Transceivers Wizard传输2路视频,基于aurora 8b10b编解码架构,提供4套工程源码和技术支持
fpga开发·gth·aurora 8b10b·transceivers
FPGA小徐2 天前
FPGA 数字信号处理(二):并行 FIR 滤波器的 Verilog 全流程设计与实现
fpga开发
国科安芯2 天前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
ALINX技术博客2 天前
【黑金云课堂】FPGA技术教程FPGA基础:I2C 总线通信技术
fpga开发·i2c
Hello-FPGA2 天前
Xilinx KU040 FPGA Camera Link 图像采集
c++·fpga开发