最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

今日关注:交叉编译esp8089

来源:博客园


(相关资料图)

交叉编译esp8089

编译环境:

硬件:全志R528 

ubuntu:Linux ubuntu 4.15.0-194-generic #205-Ubuntu SMP Fri Sep 16 19:49:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

内核:tina-r528/lichee/linux-5.4

第一步克隆代码: git clone https://github.com/Lichee-Pi/esp8089.git

第二步配置好交叉编译器

ARCH=arm CROSS_COMPILE=arm-openwrt-linux- make -C /home/kerson/tina-r528/lichee/linux-5.4/ M=${PWD} modules

说明:内核源码路径:/home/kerson/tina-r528/lichee/linux-5.4/

第三步配置脚本

insmod /run/esp8089.ko config=crystal_26M_en=1sleep 1ifconfig wlan0 upusleep 100000killall wpa_supplicantwpa_supplicant -i wlan0 -c /etc/wifi/wpa_supplicant.conf &sleep 1udhcpc -i wlan0 &

碰到的问题:

发现的问题源码中暂时找不到wifi_en 管脚的操作。reboot重启系统时esp8089设备不能重新注册。

暂时的解决方法时,内核写一个简单的驱动单独操作这个管脚。

将原来的rola.c驱动源码更改为只操作一下wifi_en管脚。

将 cp lichee/linux-5.4/drivers/watchdog/rola.c    wifi_en.c vi  wifi_en.cstatic int __init rola_dev_init(void)函数其他都注释掉。增加        int gpio_ret = gpio_request(GPIOB(1), "PB1");        gpio_direction_output(GPIOB(1), 0);        msleep(50);  /*原来5的时候,烧录完成wifi模块启动不了*/        gpio_direction_output(GPIOB(1), 1);        gpio_free(GPIOB(1));        printk("==============================\n");ssize_t rola_drv_read(struct file *filp, char __user *buf, size_t count, loff_t *fpos)ssize_t rola_drv_write(struct file *filp, const char __user *buf, size_t count, loff_t *fpos)两个函数中的内容也注释掉。修改Makefile 直接编译到内核vi lichee/linux-5.4/drivers/watchdog/Makefileobj-y += rs485.o#obj-y += rola.oobj-y += wifi_en.o

关键词: 交叉编译