
int init_led_device(struct led_dev_t *l)
{
l->phys = 0x7F008000
l->virt = ioremap(l->phys, SZ_4K)
l->gpmcon = l->virt + 0x820
l->gpmdat = l->virt + 0x824
return 0
}
void led_config(struct led_dev_t *l)
{
l->reg = ioread32(l->gpmcon)
l->reg &= ~(0xf <<0)
l->reg |= (0x1 <<0)
iowrite32(l->reg, l->gpmcon)
}
如果是访问芯片自带的功能模块的话,可以直接对寄存器进行 *** 作,或者方便点使用对应cpu的固件,调用接口来实现 *** 作各个模块。
如果是访问外设的话需要先和外设建立通讯(iic,spi,uart等,这又包含使用芯片自带的模块化功能还是使用io口模拟),然后按照外设手册进行相应的 *** 作配置。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)