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

相关推荐
GateWorld14 分钟前
LCD显示技术完全指南:原理·制造·驱动·FPGA实现之驱动二
fpga开发·lcd显示·fpga点亮屏幕·minilvds
GateWorld3 小时前
LCD显示技术完全指南:原理·制造·驱动·FPGA实现之驱动一
fpga开发·lcd显示·minilvds·fpga点屏
XMAIPC_Robot3 小时前
深度无人机自动驾驶仪,中小型无人机硬件在环仿真飞行
运维·arm开发·人工智能·fpga开发·无人机·边缘计算
小眼睛FPGA18 小时前
【紫光HiYou开源入门轻量级PCIE开发板PG2L25G】实验例程1-基于紫光FPGA 的LED 流水灯
fpga开发
不会武功的火柴18 小时前
SystemVerilog语法(8)-有限状态机(FSM)
嵌入式硬件·fpga开发·自动化·ic验证·rtl·uvm方法学
Kent Gu19 小时前
Lattice FPGA选型
fpga开发
Terasic友晶科技1 天前
答疑解惑|为DE25-Nano开发板配置Linux kernel时.config文件没有起作用是什么原因?
linux·服务器·fpga开发·linux kernel·de25-nano
8K超高清1 天前
CCBN展会多图回顾
人工智能·算法·fpga开发·接口隔离原则·智能硬件
小眼睛FPGA1 天前
【紫光HiYou开源入门轻量级PCIE开发板PG2L25G】实验例程5-DDR3 读写实验例程
fpga开发
unicrom_深圳市由你创科技1 天前
如何做FPGA的功耗优化?动态功耗管理怎么实现?
fpga开发