Now I learned how to use LEDS or Buttons with NIOS MMU. This is quite simple with writing modules for kernel. This is simple one:
# include <linux/init.h>
# include <linux/module.h>
# include <linux/kernel.h>
# include <asm/io.h>
MODULE_LICENSE("GPL");
static void* ledg_vadd;
static void* ledr_vadd;
static int __init hello_init(void)
{
printk(KERN_ALERT "Hello, world\n");
ledg_vadd = ioremap(LEDS_G, 16);
ledr_vadd = ioremap(LEDS_R, 16);
if(ledg_vadd == NULL) {
printk(KERN_ALERT "Adress is NULL");
return 0;
}
else {
printk(KERN_INFO "Address LEDS_G is 0x%p\n", ledg_vadd);
}
if(ledr_vadd == NULL) {
printk(KERN_ALERT "Adress is NULL");
return 0;
}
else {
printk(KERN_INFO "Address LEDS_R is 0x%p\n", ledr_vadd);
}
writeb(13, ledg_vadd);
writeb(15, ledr_vadd);
return 0;
}
static void __exit hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
writeb(3, ledg_vadd);
writeb(2, ledr_vadd);
iounmap(ledg_vadd);
iounmap(ledr_vadd);
}
module_init(hello_init);
module_exit(hello_exit);