Demonstrating a simple device driver with Hard IRQ ISR and Tasklet. Create a kernel module that will be our driver. Call it driver.c The ISR, whenever executed should schedule a

Demonstrating a simple device driver with Hard IRQ ISR and Tasklet. Create a kernel module that will be our driver. Call it driver.c The ISR, whenever executed should schedule a tasklet to be run later on. The ISR should print ‘Your Name: Caught the IRQ. Urgent work Muhaha’ to dmesg The tasklet function should print ‘Your Name: Doing the hackey pending work Muhaha’ to dmesg The end result is that when this module is loaded, from then on pressing any key on your keyboard should print the two messages in dmesg. You should have two functions that are your ‘work’ – urgent and deferred static irqreturn_t irq_handler_isr(int, void *); void tasklet_fn(unsigned long); The irq_handler_isr function should print the required message and then create a tasklet_struct, init it and schedule it. In your module’s init function you should call request_irq() and register the irq_handler_isr function as the ISR for the keyboard’s interrupt number You can figure out the interrupt numbers that devices are using from the file /procs/interrupts In your module’s exit function, you should call free_irq() and deregister the irq_handler_isr function.

Need your ASSIGNMENT done? Use our paper writing service to score better and meet your deadline.


Click Here to Make an Order Click Here to Hire a Writer