上节把内核自己的led给关了,这节来看看点个小灯看看。翻开3358的手册,找到gpio这节,瞬间吓尿了。
这尼玛,ti整的cpu 就是复杂,一个gpio ,搞了这么多寄存器,之前一直用的s3c 和STM32,就以为第一个寄存器是配置寄存器,结果顺着往下找,一直找到后面,才找到io 输入输出的控制寄存器,太特么蛋疼了,搞这么复杂。。。
我们这节就用到这两个寄存器,ti的手册真不一样,给出的都是偏移地址,基地址还要自己再去查,真特么蛋疼。。。 看下bbb的原理图,找找哪个io控制着小灯:
发现gpio1控制着四个板载小灯泡,我们还得再翻翻手册,找找gpio1的基地址,
终于找到了,真特么蛋疼,一直找到内存映射这里才看到。。。 这里面的0x4804_c000就是我们需要用到的gpio1的基地址,然后我们还要自己算算GPIO_OE、GPIO_DATAOUT这俩寄存器的地址是多少。。。自己算去吧,我写代码去了。。。
写这么几行代码,然后在uboot里面点亮看下,因为这里面都是位置无关码,所以链接地址可以随便了。编译一下,然后启动uboot,随便找个内存地址下载进去,go去执行,就可以发现第一个小灯被点亮了,其余三个都灭了,这就说明我们控制小灯的思路和代码都没有问题,下面就可以根据这个,在驱动中控制小灯了,这节就到这里,好吧。。。
|