⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.c

📁 读取frv实验系统上的按键值 并以此来控制frv实验板上的led 基于嵌入式linux
💻 C
字号:
#include <linux/sched.h>#include <linux/interrupt.h>#include <linux/init.h>#include <linux/delay.h>#include "fr400pdk2_board.h"#define clear_psr_et()					\	({							\		unsigned long temp;				\	__asm__ __volatile__(					\"	movsg	psr, %0		/* psr.et=0 */\n"		\"	andi	%0,#~0x1,%0\n"					\"	movgs	%0,psr"						\	: "=r" (temp)					\	:							\	: "memory");						\	})#define ON_HEARTBEAT#ifdef ON_HEARTBEATstatic void heartbeat_handler(unsigned long dev_addr);static struct timer_list led_hearbeat = {    {NULL, NULL}, 0UL, 0UL, heartbeat_handler};static unsigned long led_last[2] = {0,0};#define LED_RED 0#define LED_GREEN 1void __fr400pda_led_init(void){    unsigned flags;    save_flags_cli(flags);    led_last[LED_RED] =0;    restore_flags(flags);}static void heartbeat_handler(unsigned long dev_addr){    static unsigned short s=0;    s++;#define HEARTBEAT_SPEED	0    if(s%(1<<HEARTBEAT_SPEED)==0){	int pos;	short bits;	pos=(s>>HEARTBEAT_SPEED)&0x0f;	bits=((1<<pos)|(1<<(15-pos)))&0x7f;	write_fr400pda_register_u16(0x20000022,bits);    }    mod_timer(&led_hearbeat, jiffies + HZ / 10);}/*BASIC_SOFT@FUJITSU MOD*/static void __init led_heartbeat_init(void){    init_timer(&led_hearbeat);    led_hearbeat.expires = jiffies + HZ / 10;    led_hearbeat.function = heartbeat_handler;    add_timer(&led_hearbeat);}static int __init fr400pda_led_init(void){    __fr400pda_led_init();    led_heartbeat_init();    printk("FR400PDK2_BOARD LED\n");    return 0;}__initcall(fr400pda_led_init);#endif /* ON_HEARTBEAT */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -