ARM&Linux基础
+ -

同步总结笔记

2025-11-25 8 0
struct device_node* nd = of_find_node_by_path("/key");

int gpio =  of_get_named_gpio(nd,"key_gpio",0);

char name[100];
sprintf(name,"ke_gpio");

gpio_request(gpio,name);
gpio_direction_input(gpio);

int irqnum = irq_of_parse_and_map(nd,0);
int irqnum = gpio_to_irq(gpio);


msecs_to_jiffies(10)



timer_list timer;
init_timer(&timer);
timer.function = timer_function;

mod_timer(&tier,jiffies+mssecs_to_jiffies(10));

void timer_function()
{
    mod_timer(&tier,jiffies+mssecs_to_jiffies(10));
}


atomic_t value;
atomic_set(&value,10);
int v =  automic_read(&value);

automic_dec_and_test -1,==0?true:false;



wait_queue_head_t wait;
init_wait_queue_head(&wait);

//setevnet
wake_up_interruptible(&wait);

wait_event_interruptible(&wait,atomic_read(&value));


spinlock_t lock;
spin_lock_init(&lock);

sprin_lock(&lock);
spin_unlokc(&lock);

unsigned int flag;
spin_lock_irqsave(&flag);
spin_unlock_irqrestore(&flag);

semaphore_t sem;
sema_init(&sem,10);

down_interruptible(&sem);
up_interruptible(&sem);

mutex t;
mutex_init(&t);
mutex_lock(&t);
mutex_unlokc(&t);

--------------device-tree- dts-->dtc----->dtb--------

device_noe* n = of_find_node_by_path("/gpio");
int gpio =  of_get_named_gpio("led-gpio,"key-gpio");
gpio_request(gpio,"mygpio");
gpio_direction_input(gpio);
gpio_direction_output(gpio,0);

int value = gpio_get_value(gpio);
gpio_set_value(gpio,1);

int intnum = gpio_to_irq(gpio);
int intnum =  irq_of_parse_and_map(node,0);

request_irq(intnum,irq_function,IRQF_TRIGGER_FALLING|IRQF_TRIGGER_RASING,"IRQ_NANME",&dev);

0 篇笔记 写笔记

关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!