您尚未登录。

楼主 # 2021-10-28 23:37:08

leefei
会员
注册时间: 2020-12-19
已发帖子: 53
积分: 75

MIPI-V3x初体验之编译系统并移植LED驱动 --01

合集链接:
https://whycan.com/t_7281.html

最近JLC出货太慢了,焦急地等待了7天,PCB终于到手了。连夜焊了一块板子出来(别问我为神马只焊一片,问就是经费燃烧殆尽了)
2021-10-2900-01-28.png
大家看见没,我手欠,曾经为了展现我高超的焊接技术,把LED的线路割断了,飞线到cpu另一个引脚测试所留下的案发现场
正题开始:
首先咱们不可能手撕代码,所以ctrl+c ctrl+v 下载(V3s/V3x/S3/S3L/R11通吃)小智V3x开发板smallwitpi lite u-boot/linux/buildroot测试中的文件。我这里再发一遍吧
br2_v3_uart0_pb8_pb9-spinor-tfcard-20211026132800.tgz
1 克隆buildroot:

$ git clone https://github.com/buildroot/buildroot -b 2020.02.4

2 解压刚下载的文件

$ tar xvf br2_v3_uart0_pb8_pb9-spinor-tfcard-20211026132800.tgz

3 将解压出来的文件夹拷贝合并到buildroot中
4 编译

$ cd buildroot
$ make br2_smallwitpi_lite_v3_ddr3_uart0_pb8_pb9_tfcard_spinor_defconfig

中途可能某些包下载不下来,可以手动复制链接下载源码包到buildroot的dl目录下
5 烧录到SD卡

$ dd if=output/images/firmware-smallwitpi-lite-v1-sdcard.img of=/dev/sdx

注意/dev/sdx为你的SD卡路径,请谨慎操作这一步!!!

6 插上串口线上电就能看到系统输出的信息

这时由于没有移植任何驱动,板上设备是没有工作的,这里先简单弄个LED驱动把。
看MIPI-V3x原理图可知,LED接到了PE22引脚上,并且是高电平点亮。
首先修改增加LED驱动,第一件事就是看设备树中PE22有没有被占用,小智使用的设备树文件是buildroot/output/build/linux-5.4.70/arch/arm/boot/dts/devicetree.dts
查看此文件发现uart1占用了PE22口,所以修改uart1节点status = "ok";改为status = "disabled";

&uart1 {
	pinctrl-0 = <&uart1_pe_pins>;
	pinctrl-names = "default";
	status = "disabled";

然后在devicetree.dts的backlight: backlight 节点后面添加LED设备节点

backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm 0 1000000 1>;
		brightness-levels = <0 4 8 16 32 64 128 160 200 255>;
		default-brightness-level = <6>;
		status = "okay";
	};
	
	leds {
		compatible = "gpio-leds";
		green_led {
			label = "green";
			linux,default-trigger = "heartbeat"; //默认设置为系统心跳灯
			gpios = <&pio 4 22 GPIO_ACTIVE_HIGH>; /* PE22 */
		};
	};

修改完成后回到buildroot目录下重新编译一下

$ rm buildroot/output/build/linux-5.4.70/.stamp_built 
$ rm buildroot/output/build/linux-5.4.70/.stamp_target_installed 
$ make

编译完成后将buildroot/output/images/devicetree.dtb文件拷贝到SD卡的fat分区上
至此,上电就能看到led在闪烁了

接下来讲一下linux下如何操作这个GPIO
刚刚我们添加的led设备节点在/sys/class/leds/green目录下,需要手动操作GPIO,先把/sys/class/leds/green/trigger方式改为none

# echo none > trigger 

然后点灯

# echo 1 > brightness  

关灯灯

# echo 0 > brightness  

最近编辑记录 leefei (2021-10-29 00:37:42)

离线

楼主 #1 2021-10-28 23:41:42

leefei
会员
注册时间: 2020-12-19
已发帖子: 53
积分: 75

Re: MIPI-V3x初体验之编译系统并移植LED驱动 --01

教程中的截图正在更新中。。。。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn