static void FS4412_LED_switch(uint8_t pos) { uint8_t dat; spin_lock(&FS4412_LED.slock); dat = readl(&FS4412_LED.reg[--pos]->DAT); writel( dat & FS4412_LED_reg_ops.GPIO_DAT_MSK[pos] ? dat & FS4412_LED_reg_ops.GPIO_DAT_CLR[pos] : dat | FS4412_LED_reg_ops.GPIO_DAT_MSK[pos], &FS4412_LED.reg[pos]->DAT); /@spin_unlock(&FS4412_LED.slock); }
时间: 2023-06-16 08:03:19 浏览: 69
code uint8-t *p-flash 与uint8-t code *p-flash的区别
这是一个在FS4412开发板上控制LED灯亮灭的函数。具体来说,该函数会获取LED灯的状态,然后切换LED灯的状态。该函数使用了自旋锁来保护共享资源,以避免多个线程同时访问导致的竞态条件问题。函数的参数pos表示要控制的LED灯的位置。该函数的实现采用了寄存器操作,通过读取寄存器的值并按位运算来实现LED灯状态的切换。
阅读全文