交叉编译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 http://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=1
sleep 1
ifconfig wlan0 up
usleep 100000
killall wpa_supplicant
wpa_supplicant -i wlan0 -c /etc/wifi/wpa_supplicant.conf &
sleep 1
udhcpc -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.c
static 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/Makefile obj-y += rs485.o #obj-y += rola.o obj-y += wifi_en.o

 

本文转载于网络 如有侵权请联系删除

相关文章

  • RPC协议了解

    大家好,又见面了,我是你们的朋友全栈君。1.RPC概述 RPC(RemoteProcedureCallProtocol)远程过程调用协议。 通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个过程或函数,就像调用本地应用程序中的一 样。 正确的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。2.RPC特点: 2.1)RPC是协议:协议意味着规范。目前典型的RPC实现包括Dubbo、Thrift、Herrty等。但这些实现往往都会附加其他重要功能 ,例如Dubbo还包括服务管理、访问权限管理等功能。 2.2)网络协议和网络IO模型对其透明:既然RPC的客户端认为自己是在调用本地对象。那么传输层使用的是TCP/ UDP还是http协议,又或者是一些其他的网络协议它就不需要关心了。既然网络协议对其透明,那么调用过程中,使用的是哪一种网络IO模型调用者也不需要关心。 2.3)信息格式对其透明:远程调用过程中,需要传递一些参数,并且会返回一个调用结果。至于这些参数会以某种信息格式传递 给网络上的另一台计算机,这个信息格式是怎样构成的,调用方是

  • 2021-Java后端工程师面试指南-(计算机网络)

    前言“文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger 种一棵树最好的时间是十年前,其次是现在 ”Tips面试指南系列,很多情况下不会去深挖细节,是小六六以被面试者的角色去回顾知识的一种方式,所以我默认大部分的东西,作为面试官的你,肯定是懂的。“https://www.processon.com/view/link/600ed9e9637689349038b0e4 ”上面的是脑图地址叨絮计算机网络基础,其实是我们开发非常重要的一个知识点,今天我们一起来看看它的面试题吧然后下面是前面的文章汇总2021-Java后端工程师面试指南-(引言)2021-Java后端工程师面试指南-(Java基础篇)2021-Java后端工程师面试指南-(并发-多线程)2021-Java后端工程师面试指南-(JVM)2021-Java后端工程师面试指南-(MySQL)2021-Java后端工程师面试指南-(Redis)2021-Java后端工程师面试指南-(Elasticsearch)2021-Java后端工程师面试指南-(消息

  • 企服业务突然关停,创始人低调离场,天眼查试错机会还有多少?

    “在天眼企服宣告关闭的前一个月,创始人柳超退出了天眼查的核心管理团队,那是一次低调但剧烈的变动。”近年来,随着政府不断鼓励社会创新创业,全国市场主体截止2021年底已突破1.5亿户,个体工商户突破1亿户,随之而来的则是市场对于代记账、代运营、知产、法务等专业服务的庞大需求,第三方企服平台应运而生,在这其中又以天眼企服最具话题性,三年时间覆盖2000个市县,紧随其后的却是宣告关停。记录这类企业的兴衰历史,是一件非常有趣的事,因为这段“历史”过去的时间还很短,我们还来不及遗忘;然而它也不那么短,足以让我们看清很多问题。据天眼查官方信源:天眼企服平台将于2022年7月15日24时关停,天眼查表示该业务仅是公司的一个小的业务板块,对天眼查产品业务和主体产品没有影响。在艾媒咨询公开的“天眼查生态”图中,“企业服务”与“天眼风险、数据服务、企业关系网”同属天眼查生态的第一梯队,虽然天眼查在官方声明中强调,“天眼企服”为公司“小业务”、对天眼查没影响,但从过往天眼查APP页面中近半的Banner露出为天眼企服相关信息就能看出,企服业务曾是天眼查战略转型的一次重要布局与尝试。面对突如其来的关停,这个曾

  • Python 中常见的 TypeError 是什么?

    翻译:BioIT爱好者 原文:TypeError:ABytes-LikeobjectIsRequired,not'str'|Finxter简介目标:在本教程中,我们的目标是修复以下的TypeError:ABytes-LikeobjectIsRequired,not'str'异常,并且还讨论了类似的异常及其解决方案。示例:考虑以下文件'scores.txt',其中包含一些随机候选者的分数。https://blog.finxter.com/wp-content/uploads/2021/04/scores.txtMike-80 Boby-60 Joe-75 Shaw-85 Ravi-65 复制现在,让我们尝试在一个简单程序的帮助下从文件中获得Ravi的分数。withopen("scores.txt","rb")asp: lines=p.readlines() forlineinlines: string=line.split('-') if'Ravi'

  • postman使用(二)

    授权设置Postman支持的授权协议类型如下NoAuthBasicauthDigestAuthOAuth1.0HawkAuthenticationBasicauth用户名:postman密码:password授权协议:Basicauth返回结果{ "authenticated":true } 复制DigestAuthDigestauth是一个简单的认证机制,最初是为HTTP协议开发的,因此也常叫做HTTP摘要。其身份验证机制非常简单,它采用哈希加密方法,以避免用明文传输用户的口令。摘要认证就是要核实參与通信的两方都知道双方共享的一个口令。案例请求URL如下https://postman-echo.com/digest-auth 复制摘牌配置信息如下:用户名密码和上面basicauth一样Digestusername="postman",realm="Users",nonce="ni1LiL0O37PRRhofWdCLmwFsnEtH1lew",uri="/digest-auth", re

  • 颜色空间系列2: RGB和CIELAB颜色空间的转换及优化算法

    颜色空间系列代码下载链接:http://files.cnblogs.com/Imageshop/ImageInfo.rar(同文章同步更新)在几个常用的颜色空间中,LAB颜色空间是除了RGB外,最常用的一种之一,不同于RGB色彩空间,Lab颜色被设计来接近人类视觉。它致力于感知均匀性,它的L分量密切匹配人类亮度感知。因此可以被用来通过修改a和b分量的输色阶来做精确的颜色平衡,或使用L分量来调整亮度对比。这些变换在RGB或CMYK中是困难或不可能的,它们建模物理设备的输出,而不是人类视觉感知。关于CIELAB颜色空间的更多原理说明,可见:http://en.wikipedia.org/wiki/Lab_color_space本文研究的重点是RGB和LAB之间的快速转换过程。首先,RGB和LAB之间没有直接的转换公式,其必须用通道XYZ颜色空间作为中间层,关于RGB和XYZ颜色空间的转换及优化,详见颜色空间系列1。XYZ------>LAB转换公式如下:一般情况下我们认为Yn,Xn,Zn都为1。其中在上述表达式中,X,Y,Z及t变量的取值范围都是[0,1],对应的L分量的取值范围为[

  • Altium Designer PCB制作入门实例

    概要: 本章旨在说明如何生成电路原理图、把设计信息更新到PCB文件中以及在PCB中布线和生成器件输出文件。并且介绍了工程和集成库的概念以及提供了3DPCB开发环境的简要说明。 欢迎使用AltiumDesigner,这是一个完善的适应电子产品发展的开发软件。本章将以"非稳态多谐振荡器"为例,介绍如何创建一个PCB工程。Contents 创建一个新的PCB工程 创建一个新的电气原理图 设置原理图选项 画电路原理图 加载元件和库 在电路原理图中放置元件 电路连线 设置工程选项 检查原理图的电气属性 设置ErrorReporting 设置connectionMatrix 设置Comparator 编译工程 创建一个新的PCB文件 导入设计 印刷电路板(PCB)的设计 对PCB工作环境的设置 定义层堆栈和其他非电气层的视图设置 设置新的设计规则 在PCB上摆放元器件 手动布线 板的自动布线 板设计数据校验 在3D模式下查看电路板设计 为元器件封装创建和导入3D实体 检验PCB板设计 输出文件 手动输出文件 生成Gerber文件 创建一个器件清单 深入研究 创建一个新的PCB工

  • apollo入门(一)

    1.apollo入门(一)1.1.核心概念1.1.1.应用注意:每个应用需要配置一个appid 1.1.2.环境dev开发环境fat功能测试环境uat用户接受测试环境pro生产环境注意:需要在不同的环境的固定目录配置上对应环境配置文件 1.1.3.集群注意:不同集群的配置也是在固定目录的server.properties文件中配置 1.1.4.名字空间和类型1.1.5.关联类型案例1.1.6.配置项1.1.7.权限1.2.架构1.2.1.后端1.2.1.1.模块介绍11.2.1.2.模块介绍21.2.1.3.架构视图21.2.1.4.领域模型1.2.1.5.权限模型1.2.1.6.实时推送设计1.2.1.7.ReleaseMessage实现1.2.2.客户端1.2.2.1.客户端实现总结1.2.3.HA高可用设计1.2.4.监控1.2.5.先决条件1.2.6.部署案例1.2.7.关键配置和注意点1.3.注意点1.3.1.环境要求1.3.2.AppId1.3.3.配置中心地址1.3.4.运行环境1.3.5.可选集群1.3.6.本地缓存路径1.3.7.jar包依赖1.3.8.本地开发常见问

  • 机器学习之朴素贝叶斯算法

    1.朴素贝叶斯简介朴素贝叶斯(NaiveBayesian)算法能够根据数据加先验概率来估计后验概率,在垃圾邮件分类、文本分类、信用等级评定等多分类问题中得到广泛应用。对于多数的分类算法,比如决策树、KNN等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系。但朴素贝叶斯和多数分类算法都不同,朴素贝叶斯是生成算法,也就是先找出特征输出Y和特征X的联合分布P(X,Y),然后用P(Y|X)=P(X,Y)/P(X)得出。朴素贝叶斯算法的优点在于简单易懂、学习效率高,在某些领域的分类问题中能够与决策树相媲美。但朴素贝叶斯算法以自变量之间的独立性和连续变量的正态性假设为前提,会导致算法精度在一定程度上受到影响。2.朴素贝叶斯算法模型2.1统计知识回顾深入算法原理之前,我们先来回顾下统计学的相关知识。条件概率公式条件概率公式全概率公式经过上面统计学知识,我们能够得出贝叶斯公式。2.2朴素贝叶斯模型2.3朴素贝叶斯推断2.4朴素贝叶斯参数估计3.朴素贝叶斯算法流程从上面计算可以看出,朴素贝叶斯没有复杂的求导和矩阵运算,因此效率很高。但朴素贝叶斯假设数据特征之间相互独立,如果数据特征之间关

  • 部分算法总结

    部分算法总结1.希尔排序基本思想:希尔排序(Shell'sSort)是插入排序的一种又称“缩小增量排序”(DiminishingIncrementSort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。JavaScript:vararr=[49,38,65,97,76,13,27,49,55,04]; varlen=arr.length; for(varfraction=Math.floor(len/2);fraction>0;fraction=Math.floor(fraction/2)){ for(vari=fraction;i<len;i++){ for(varj=i-fraction;j>=0&&arr[j]>arr[fraction+j];j-=fraction){ vartemp=arr[j

  • ThreadLocal实现原理详解

    简书涤生。转载请注明原创出处,谢谢!介绍ThreadLocal大家应该不陌生,经常在一些同步优化中会使用到它。很多地方叫线程本地变量,ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。也就是对于同一个ThreadLocal,每个线程通过get、set、remove接口操作只会影响自身线程的数据,不会干扰其他线程中的数据。ThreadLocal是怎么实现的呢?ThreadLocal又有哪些误区呢?源码分析从ThreadLocal的set方法说起,set是用来设置想要在线程本地数据,可以看到先拿到当前线程,然后获取当前线程的ThreadLocalMap,如果map不存在先创建map,然后设置本地变量值。/** *Setsthecurrentthread'scopyofthisthread-localvariable *tothespecifiedvalue.Mostsubclasseswillhavenoneedto *overridethismethod,relyingsolelyonthe{@link#initialValue}

  • 开源软件实践之linux高性能服务器编程框架和选型

    很多人学习编程技术一般都通过一本编程语言的入门书籍,然后尝试做一些例子和小项目。但是这些都不能让我们深入的学习很多的编程技巧和高深技术,当然这个时候很多有经验的学习人员就会告诉大家,找一个好的开源软件理解它的设计与实现原理,阅读开源项目的源代码,都知道源码之前了无秘密。我也承认读源码能够快速提高我们的编程能力和编程思维,我也经常研究很多项目的源代码,有些是工作需要,有些是兴趣。但是我今天想说的都不是这些,我想说的是更高一层的学习方案,就是通过自己的实践实现一个开源软件,也许这个开源软件没有任何人使用,但是在实现的这个过程中你会学习到很多,因为实现一个真正的开源软件需要使用到很多编程知识和技巧,这就会驱使你不断去学习这些编程知识和技巧,学会之后能够马上用于实践,真正实践完成以后你对这些编程知识和技巧理解就更深入了。     我目前就正在做这样一件事情,我选择的是实现一个类似nginx的高性能http服务器。选择这个的理由很简单,我在一个互联网公司,http协议和http服务器经常和我打交道,在架构设计和分布式系统实现的时候可能都需要考虑这些。我开源的地址如下:https://githu

  • PHP CURL详解

    一、测试网络是否连接<?php      // create curl resource      $ch = curl_init();      // set url      curl_setopt($ch, CURLOPT_URL, "baidu.com");      //return the transfer as a string      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);      // $output contains the output string      $output = curl_exec($ch);      //echo output     echo $output;   // close curl resource to free up system resources      curl_close($ch);       ?>复制  $ch=curl_init(),创建了一个curl会话资源,成功返回一个句柄;    curl_setopt($ch,CURL

  • 如何赋予智能机器人道德能力?

    打造具备道德自主能力人工智能装置的人该负什么样的责任?我们该如何透过有责任感的方式,为机器人添加道德能力?研究人员将为这些链接机器人与人工智能工程、巨量数据分析以及道德哲学的迷人题目找出答案;它们正为工程师们带来挑战,也不应该被忽视。来自美国塔夫斯大学(TuftsUniversity)、布朗大学(BrownUniversity)、以色列理工学院(RensselaerPolytechnicInstitute)与世界其他学术机构的研究人员们,正与美国海军共同探索以上相关问题,目标是开发出能成功植入机器人的道德算法。 为了解更多针对机器人应用的嵌入式道德算法开发现况,《电子工程专辑》美国版编辑专访了塔夫斯大学计算机科学教授MatthiasScheutz,他也是该校的人类-机器人互动实验室(Human-RobotInteractionLaboratory,HRILab)的负责人。 设计具备道德能力机器人所遭遇的挑战有哪些?Scheutz表示:“相关挑战有很多,例如理解道德判断情境,可解决道德冲突的恰当道德推理能力,以及判断适合的行动路线等,还要将所有的算法以一种让它们能坚定地实时运作之方式

  • 聊聊常见外设总线

     USB是一个常见的外设接口名字,从1994年被Intel和Microsoft设计发布以来,已经走过了9个年头。从USB1.0的1.5M带宽,到今天USB3.0的5G带宽,USB接口凭借软硬件两大厂商的大力推广,已经成为了我们生活中必不可少的一部分。手机、U盘、键鼠、读卡器,以及各式各样的外设都在使用USB接口。当然,除了USB外,还有IEEE1394、eSATA、Thunderbolt等等。reizhi在这里就和大家聊聊身边常见的外设接口。   USB在诞生之初就是为了解决外设接口通用性和易用性的难题,USB设备使用统一的接口,易于驱动,易于扩展,并且提供了可接受的传输速度。在很长的一段时间里,USB2.0作为PC几乎唯一首选的外设连接方式而出现。其实同时期USB2.0的竞争对手还有IEEE1394和eSATA,我们分别来对比介绍。  IEEE1394的起源其实来自于Apple,最高能够提供800M的传输速率。但是由于专利许可的问题,IEEE1394成本过高,并没能在PC平台发展推广起来。而在早期的Apple产品中,IEEE1394是很常见的。时至今日,已经被Thunderbolt

  • PyTorch之Regression

      #!/usr/bin/envpython2 #-*-coding:utf-8-*- importtorch fromtorch.autogradimportVariable importmatplotlib.pyplotasplt #创建数据 x=torch.unsqueeze(torch.linspace(-1,1,100),dim=1) y=x.pow(2)+0.2*torch.rand(x.size()) #将tensor添加到Variable中#画图 x,y=torch.autograd.Variable(x),Variable(y) plt.scatter(x.data.numpy(),y.data.numpy()) #plt.show() #构建神经网络 #torch中的体系.先定义所有的层属性(__init__()), #然后再一层层搭建(forward(x))层于层的关系链接. #建立关系的时候,会用到激励函数 importtorch.nn.functionalasF#引入激励函数 #继承torch的Module classNet(torc

  • 统计微信小程序项目代码行数

    打开终端=>当前路径是项目目录=>复制下面命令即可: find."("-name"*.json"-or-name"*.js"-or-name"*.wxss" -or-name"*.wxml"")"-print|xargswc-l   不要在该奋斗的年纪选择去偷懒,只有度过一段连自己都被感动了的日子,才会变成那个最好的自己.

  • [应用层]Linux进程间通信机制

    转自:https://www.cnblogs.com/yangang92/p/5679641.html 主要如下方式: 1. 管道pipe2. 命名管道FIFO3. 内存映射MemoryMapping4. 消息队列MessageQueue5. 共享存储SharedMemory6. 信号量Semaphore7. 套接字Socket

  • Codeforces Global Round 1

    A.Parity 签. 1#include<bits/stdc++.h> 2usingnamespacestd; 3 4#defineN100010 5intb,k,a[N]; 6 7intmain() 8{ 9while(scanf("%d%d",&b,&k)!=EOF) 10{ 11intres=0; 12for(inti=1;i<=k;++i)scanf("%d",a+i); 13intbase=1; 14for(inti=k;i>=1;--i) 15{ 16res=(res+a[i]*base%2)%2; 17base=base*b%2; 18} 19puts(res%2?"odd":"even"); 20} 21return0; 22}复制 ViewCode 做的时候卡了一会儿 因为想用费马小定理 认为 $b^x=b^{(x\%\phi(m))}\pmodm$ 然后幂次都变为$0$ 就直接加起来$模2判断一下就好了$ $但是没有考虑到0^0次的问题$ $在这里如果b\%2==0,那么带b的项都为0$ 1#include<

  • Django的日常-AJAX

    目录Django的日常-AJAXAJAX简介AJAX与JQ的一个实例AJAX与contentTypeAJAX传json格式AJAX传文件 Django的日常-AJAX AJAX简介 首先AJAX是一种无需重新加载整个网页的前提下,能够更新部分网页的技术,他并不是一种新的编程语言,而是一种使用现有标准的新方法,是基于原生JavaScript开发的,他可以用于创建快速动态网页. AJAX最大的特点就是局部刷新以及异步提交,局部刷新,顾名思义就是可以在不刷新整个页面的情况下局部刷新,而异步提交就是提交任务之后不需要原地等待任务的返回值,可以继续向下运行,之后通过回调函数来接收到之前提交任务的返回值,效率非常高. 本文并不是从JS来对AJAX做说明,而是从一个相对简单的角度,结合AJAX和jQuery的用法,可以大大简化AJAX本身的代码量,并实现更多的功能,下面我们通过一个实例来说明AJAX和jQuery结合的具体用法. AJAX与JQ的一个实例 题目如下:写一个前端页面,页面上有两个输入框,在第一个输入框里面输入一个计算式,在第二个输入框里面显示其结果,注意,页面不可以刷新,即不能通过直接

  • 高级Java开发人员最常访问的几个网站

    这是高级Java开发人员最常访问的几个网站。 这些网站提供新闻,一般问题或面试问题的答案,精彩的讲座等。质量是优秀网站的关键因素,这此网站都有较高的质量内容。下面逐一介绍: 1.Stackoverflow Stackoverflow.com可能是编程世界中最受欢迎的网站。有数百万个好问题和答案。学习API或编程语言通常依赖于代码示例,stackoverflow有很多代码段。 stackoverflow的另一件好事是它是社交的。您可以在某些标签下查看问题,例如“java”和“regex”,那么可以看到什么问题是最常被问及最多的投票。这可以作为学习的良好资源,也是编写Java博客热门话题的好资源。 网站URL:http://stackoverflow.com/ 2.DZone DZone这个网站很有趣,很多开发者分享他们的博客文章。分类一般,所以您可能不知道会在这个网站下一步阅读什么东西。 网站URL:http://www.dzone.com 3.LeetCode 如果面试问题是java,比如“Java中内存中的数组看起来像什么”,那么可以从很多Java教程中获得答案。但是,如

相关推荐

推荐阅读