精华内容
下载资源
问答
  • easyuefi 破解

    热门讨论 2017-04-04 15:47:56
    easyuefi 破解
  • EasyConnect安装使用教程

    千次阅读 多人点赞 2021-02-26 11:09:31
    easyconnect电脑版是一款为企业提供的移动信息化办公软件,这款软件可以让公司经常出差的人员能在公司范围外使用公司的内网系统和相关应用。软件支持移动和pc平台,不管是在电脑上还是手机上使用都非常方便,easy...

    easyconnect电脑版是一款为企业提供的移动信息化办公软件,这款软件可以让公司经常出差的人员能在公司范围外使用公司的内网系统和相关应用。软件支持移动和pc平台,不管是在电脑上还是手机上使用都非常方便,easyconnect电脑版便捷性和安全性使企业可以随时随地准确获得信息,进行决策。

    公司员工可以借助这个工具使用外网连接到公司内网。

    下载地址:https://download.csdn.net/download/weixin_41937552/15480073

    目录

     

    安装方法:

    使用教程


    安装方法:

    下载安装包解压后,双击.exe文件就可以安装软件。

    耐心等待easyconnect安装完就可以了,点击完成。

    可能需要下载必要的组件。直接下载安装即可

    使用教程

    双击easyconnect打开软件,主界面如下图所示,输入服务器地址,这个地址一般是公司或校园的vpn地址,点击“连接”即可。界面显示正在初始化,等待一段时间后,即可进入帐号登录界面。

    输入用户名以及密码,勾选记住密码,点击箭头处的“登录”即可。

    这样我们就成功登录到内网,浏览器会自动跳转到相应的内网界面。如果需要退出easyconnect,找到右下角的软件图标,单击鼠标右键,点击“退出”即可。

     

    好啦,本期的内容就分享到这里,我们下期见!

        好书不厌百回读,熟读自知其中意。让学习成为习惯,用知识改变命运,让博客见证成长,用行动证明努力。
        如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
        听说 👉 点赞 👈 的人运气不会太差,每一天都会元气满满呦!^ _ ^ ❤️ ❤️ ❤️
        码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了👉 关注 👈我哦!
        更多精彩内容请前往 孙叫兽的博客

    微信公众号【电商程序员】,分享改变自己的项目。

    如果以上内容有任何错误或者不准确的地方,欢迎在下面 👇 留个言。或者你有更好的想法,欢迎一起交流学习~~~
     

     

    展开全文
  • 深信服EasyConnect客户端PC端

    千次下载 热门讨论 2015-11-03 19:33:28
    深信服EasyConnect SSL 客户端PC端下载
  • easydarwin

    千次阅读 2017-05-03 09:41:50
    # 高性能流媒体服务器EasyDarwin # EasyDarwin开源流媒体服务器是EasyDarwin开源流媒体云平台的流媒体服务部分,是整个流媒体云平台的核心服务,EasyDarwin基于Apple的开源项目Darwin Streaming Server v6.0.3...
    # 高性能流媒体服务器EasyDarwin #


    EasyDarwin开源流媒体服务器是EasyDarwin开源流媒体云平台的流媒体服务部分,是整个流媒体云平台的核心服务,EasyDarwin基于Apple的开源项目Darwin Streaming Server v6.0.3开发和扩展的,EasyDarwin支持标准RTSP/RTP/RTCP协议,具备RTSP直播功能,适应PC、安卓、IOS直播等各终端平台,最大程度贴近安防监控、移动互联网流媒体需求;


    EasyDarwin本身提供了一个高性能的服务端框架,Linux/Windows跨平台支持,是开发流媒体服务以及其他类型服务的极佳框架工具,EasyDarwin具备一套完整的网络I/O框架以及Utility,EasyDarwin开源团队也在不断进行更优的性能优化(epoll、线程池、内存池、堆栈调用、寄存器调用等)、应用优化(RESTful接口、WEB管理后台、配套APP等),开发者很容易在EasyDarwin的基础上开发跨平台服务程序,例如Windows、Linux、Mac、Solaris等系统平台,只要一次熟悉,将会受用终身,并且部署和开发过程简单,文档和支持完备,是互联网<sup>+</sup>时代,对企业和开发者来说,最接地气的开源流媒体服务器;


    ## 云平台部署示例 ##
    在线演示:[http://demo.easydarwin.org/](http://demo.easydarwin.org/ "EasyDarwin demo")


    下载地址:http://pan.baidu.com/s/1sluDEPn


    EasyDarwin.rar为Windows平台,EasyDarwin.tar.gz为Linux平台。
    需根据里面的文档修改IP、路径等就可以运行。
    参考:http://blog.csdn.net/jinlong0603/article/details/60886234


    ## 视频教程 ##


    EasyDarwin开源流媒体服务器:编译、配置、部署:[http://edu.csdn.net/course/detail/2431](http://edu.csdn.net/course/detail/2431 "EasyDarwin开源流媒体服务器视频教程")




    ## EasyDarwin 功能 ##


    ### 支持 ###
    1. 标准RTSP/RTP推送直播;
    2. 接入EasyDarwin流媒体云平台,分布式、多点部署;


    ### 开发中… ###
    1. EasyDarwin Web管理后台;
    1. EasyDarwin商用流媒体点播与直播服务器;




    ## 编译、配置、部署的方法 ##


    ### 1、获取EasyDarwin最新版本 ###
    在Github:[https://github.com/EasyDarwin/EasyDarwin](https://github.com/EasyDarwin/EasyDarwin "EasyDarwin") 中获取最新的EasyDarwin版本源码,自行编译成需要的可执行文件,也可以直接在 [https://github.com/EasyDarwin/EasyDarwin/releases](https://github.com/EasyDarwin/EasyDarwin/releases "EasyDarwin Release") 中下载已经归档的相应版本进行部署;
    > 最好的选择就是:从归档版本中获取可执行文件或者获取源码编译成可执行文件,未归档的版本可能正在开发迭代中,各个模块都可能不是很完善;


    ### 2、编译EasyDarwin可执行文件 ###


    *【如果直接下载已经编译好的Release归档版本,可跳过此步骤】*  


    - Windows版本编译,可以直接用**Visual Studio 2015**打开源码文件中的:**/EasyDarwin-master/EasyDarwin/WinNTSupport/EasyDarwin.sln**解决方案文件,编译出exe可执行文件EasyDarwin.exe,也可以用更高版本的vs进行编译,vs向下兼容,所以编译应该不是什么大问题,可能会有部分编译选项需要调整,这个根据实际情况调整即可,可以肯定的是,源码编译都是没有问题的;
    > 经常会有开发者在编译完成后直接vs运行出现无法运行xxx.lib或者缺少xxx.dll的问题,建议好好补补基础知识:

    > 1. vs调试运行需要设置EasyDarwin项目为启动项;
    > 2. 运行缺少dll时,可以将dll复制到vs的EasyDarwin.vcproj同级目录,或者设置EasyDarwin.vcproj项目熟悉,将dll路径以环境变量的形式添加到vs:
    > ![EasyDarwin](http://www.easydarwin.org/github/images/easydarwin/00.png)




    - Linux版本编译(**gcc4.8+,support c++ 11**),将从Github获取的EasyDarwin源码zip文件进行unzip解压,再进行具体编译:


    >
    cd ./EasyDarwin-master/EasyDarwin/
    chmod +x ./Buildit
    ./Buildit (./Buildit i386 or ./Buildit x64编译出相应版本的可执行文件)
    cd ./x64  (or cd ./Release)




    ### 3、配置easydarwin.xml ###
    EasyDarwin主要的几个配置项:


    ***rtsp_port***:EasyDarwin RTSP服务监听的端口;


    ***service\_lan\_port***:HTTP RESTful服务端口;


    **enable\_cloud\_platform**:是否接入云平台,true表示接入redis,由EasyCMS负载均衡;


    ### 4、运行EasyDarwin ###
     


    - Windows调试运行:


        EasyDarwin.exe -c ./easydarwin.xml -d  


    - Windows服务方式运行:


    我们在EasyDarwin\WinNTSupport目录提供一段脚本install service.bat,运行,我们就创建了一个叫做EasyDarwin的Windows服务了,通过系统服务(services.msc)可以查看到。
    注:Windows不同版本可能稍有差异,建议在命令行运行bat脚本,而不是直接双击运行,这样能看到具体出错原因!


    - Linux调试运行


        ./easydarwin -c ../WinNTSupport/easydarwin.xml  -d


    - Linux后台服务方式运行


        ./easydarwin -c /etc/streaming/easydarwin.xml  &


    > **注:无论是Windows还是Linux运行EasyDarwin,以Debug模式运行时,-c后面带的配置文件路径可以是相对路径也可以是绝对路径,但是以服务/后台方式运行,就必须是用绝对路径!**




    ### 5、检查EasyDarwin是否部署成功 ###


    通过访问EasyDarwin RESTful接口可以初步判断EasyDarwin流媒体服务器是否已经运行起来了,例如我们可以访问:http://[ip]:[http\_service\_port]/api/v1/getserverinfo 接口查看EasyDarwin是否运行响应,后面的版本我们会增加一个获取EasyDarwin整体运行配置信息RESTful接口,这样在外部就能查看EasyDarwin是否读取到了正确的用户配置:


        {
      "EasyDarwin" : {
         "Body" : {
            "Hardware" : "x86",
            "InterfaceVersion" : "v1",
            "RunningTime" : "2 Days 4 Hours 51 Mins 41 Secs",
            "Server" : "Server: EasyDarwin/7.2 (Build/16.1231; Platform/Win32; Release/EasyDarwin; State/Development; )"
         },
         "Header" : {
            "CSeq" : "1",
            "ErrorNum" : "200",
            "ErrorString" : "Success OK",
            "MessageType" : "MSG_SC_SERVER_INFO_ACK",
            "Version" : "v1"
         }
      }
    }


    ###Web后台###
     - Web后台默认登录账户admin,密码admin,代码中固定的,您可以根据自己的需求进行用户名、密码管理。
     - web后台地址: http://ip:10080 , 其中ip为运行EasyDarwin服务器的ip地址。
     - web后台代码在nginx目录下。


    ## 调用方法 ##


    ### 点播 ###


    EasyDarwin RTSP版本的流媒体服务器不支持点播,只有商用版本EasyDarwin才支持点播!!!
    详情请访问:[http://www.easydss.com/](http://www.easydss.com/ "EasyDSS")




    ### 直播转发 ###


    直接通过标准RTSP/RTP推送流程(ANNOUNCE/SETUP/PLAY/RTP)向EasyDarwin推送音视频数据进行转发和分发,例如rtsp_port配置为8554,那我们可以直接用[**EasyDarwin EasyPusher**](https://github.com/EasyDarwin/EasyPusher "EasyPusher")或者**live555 DarwinInjector**向8554端口进行直播推送,推送后,我们可以通过  **rtsp://[ip]:[http\_service\_port]/api/v1/getrtsplivesessions**  接口获取当前正在进行RTSP直播的列表;


    ## FAQ ##


    ### 0. web管理页面无法登陆 ###


    EasyDarwin web登陆采用的是nginx反向代理方式,需要在nginx/nginx.conf中配置proxy_pass,将接口代理转发到EasyDarwin的对应http端口进行处理,例如EasyDarwin的http接口端口为:10008,那nginx.conf中加入配置:


         location /api {
           proxy_pass http://127.0.0.1:10008;
        }


    ### 1. RTSP推送到EasyDarwin出现404错误 ###

    方法一:用EasyPusher做直播推送;


    方法二:修改RTSP ANNOUNCE里面的sdp信息,把 "o=- %u %u IN IP4 %s/r/n" 和 "c=IN IP4 %s/r/n"里面的ip地址改成127.0.0.1就可以了;


    方法三:我们将EasyDarwin部署到公网,当服务器置身内网,用端口映射的方式对外提供服务,在接收RTSP/RTP推送的时候,经常会出现在SETUP步骤Darwin返回404错误,经过查找原因,主要是EasyDarwin对推送的sdp信息中的IP地址不能识别,服务器并不知道自己已经置身于公网的地址:


    **ifconfig查看地址信息**


    ![EasyDarwin](http://www.easydarwin.org/github/images/easydarwin/9d86ccd17b3d38b84c27ed1008a9bf38.jpg)


    **ip addr查看eth0地址列表**


    ![EasyDarwin](http://www.easydarwin.org/github/images/easydarwin/45d612cba5ddc67617e734f532df78c7.jpg)


    我们通过命令:ip addr add dev eth0 [公网IP],向eth0添加一个公网地址就解决问题了:


    ![](http://www.easydarwin.org/github/images/easydarwin/167035e801fadf06ea5f6acb5486a988.jpg)


    Windows添加公网地址的方法:


    ![EasyDarwin](http://www.easydarwin.org/github/images/easydarwin/8604f16ba3eb39ba2dd4e32a63f1fcf5.jpg)


    ### 2. EasyDarwin做转发延时10几秒? ###

    在EasyDarwin QTSSReflectorModule转发模块中,有一个控制转发Buffer时间的配置**reflector_buffer_size_sec**,我们将这个配置改成0,也就是在服务器端不做缓存,直接转发,这样在网络条件充足的情况下对比转发和实时流,转发带来的延时也几乎可以忽略了:




    ### 3. 看不到直播视频,如何排查? ###


    我们可以先配置easydarwin.xml文件中的


    <PREF NAME="RTSP_debug_printfs" TYPE="Bool16" >true</PREF>


    字段为true,然后重新启动EasyDarwin,请求EasyDarwin,如果一点报文都没有打印,那就是你访问的地址错了!如果报文有打印,那就可以具体看看返回的错误码是多少了,错误码对照表:

    <table>
    <tbody>
    <tr><td><em>响应码</em></td><td><em>报文描述</em></td><td><em>定义</em></td></tr>
    <tr><td>200</td><td>Success OK</td><td>成功创建</td></tr>
    <tr><td>201</td><td>Success Created</td><td>成功创建</td></tr>
    <tr><td>202</td><td>Success Accepted </td><td>已接受用于处理,但处理尚未完成</td></tr>
    <tr><td>204</td><td>Success No Content </td><td>已接收请求,但不存在要回送的信息</td></tr>
    <tr><td>206</td><td>Success Partial Content </td><td>已接收请求,但要回送的信息不完整</td></tr>
    <tr><td>301</td><td>Redirect Permanent Moved </td><td>请求的数据具有新的位置且更改是永久的。</td></tr>
    <tr><td>302</td><td>Redirect Temp Moved </td><td>请求的数据临时具有不同 URI</td></tr>
    <tr><td>303</td><td>Redirect See Other </td><td>可在另一 URI 下找到对请求的响应</td></tr>
    <tr><td>305</td><td>Use Proxy </td><td>必须通过位置字段中提供的代理来访问请求的资源</td></tr>
    <tr><td>400</td><td>Client Bad Request </td><td>请求中有语法问题,或不能满足请求</td></tr>
    <tr><td>401</td><td>Client Unauthorized </td><td>未授权客户端访问数据</td></tr>
    <tr><td>402</td><td>Payment Required </td><td>需要付款,表示计费系统已有效</td></tr>
    <tr><td>403</td><td>Client Forbidden </td><td>禁止, 即使有授权也不需要访问</td></tr>
    <tr><td>404</td><td>Not Found </td><td>服务器找不到给定的资源</td></tr>
    <tr><td>405</td><td>Method Not Allowed </td><td>请求的方法不支持</td></tr>
    <tr><td>407</td><td>Proxy Authentication Required </td><td>代理认证请求,客户机首先必须使用代理认证自身</td></tr>
    <tr><td>408</td><td>Request Timeout </td><td>请求超时</td></tr>
    <tr><td>409</td><td>Conflict </td><td>请求冲突</td></tr>
    <tr><td>412</td><td>Precondition Failed </td><td>前提条件失败</td></tr>
    <tr><td>415</td><td>Unsupported Media Type </td><td>服务器拒绝服务请求,因为不支持请求实体的格式</td></tr>
    <tr><td>500</td><td>Server Internal Error </td><td>内部错误,因为意外情况,服务器不能完成请求</td></tr>
    <tr><td>501</td><td>Server Not Implemented </td><td>未执行,服务器不支持请求</td></tr>
    <tr><td>502</td><td>Server Bad Gateway </td><td>错误网关,服务器接收到来自上游服务器的无效响应</td></tr>
    <tr><td>503</td><td>Server Unavailable </td><td>由于临时过载或无法获得服务护,服务器无法处理请求</td></tr>
    <tr><td>505</td><td>RTSP Version Not Supported </td><td>不支持的RTSP版本</td></tr>


    </tbody>
    </table>




    ### 4. /bin/sh^M: bad interpreter: No such file or directory ###


    **感谢QQ:591003999提供的完整解决方案**


    从git上导下来的Buildit的格式是:fileformat=dos,但是在Linux下的话 是需要fileformat=unix 所以 ./Buildit 就出现错误 无法执行,需要修改文件格式,


    - 在Windows下转换: 


    > 利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下

    > **(UltraEdit):File-->Conversions-->DOS->UNIX**

    > 即可。 


    - 也可在Linux中转换: 


    > 首先要确保文件有可执行权限 

    > #sh>chmod a+x filename 

    > 然后修改文件格式 

    > #sh>vi filename 

    > 利用如下命令查看文件格式 

    > :set ff 或 :set fileformat 

    > 可以看到如下信息 

    > fileformat=dos 或 fileformat=unix 

    > 利用如下命令修改文件格式
    >  
    > :set ff=unix 或 :set fileformat=unix 

    > :wq (存盘退出) 
    >
    >
    >**(又或者用:dos2unix ./Buildit直接修改编码更方便,BTW:感谢Denny.bai提供的方法)**
    >
    >
    > 最后再执行文件 
    >
    > #sh>./filename





    ## 获取更多信息 ##


    邮件:[support@easydarwin.org](mailto:support@easydarwin.org) 


    WEB:[www.easydarwin.org](http://www.easydarwin.org)


    QQ交流群:288214068/496258327


    Copyright &copy; EasyDarwin.org 2012-2017


    ![EasyDarwin](http://www.easydarwin.org/skin/easydarwin/images/wx_qrcode.jpg) 
    展开全文
  • 因为需要访问内网,刚上手Mac又没有安装这个软件,然后在EasyConnect官网下载安装后,发现竟然连不上,软件提示:”客户端版本与服务器不匹配,请更新“。接下来就开始了填坑之路,如标题所示。下面就说说我遇到的坑...

    系统:MacOS Mojave 10.14.5

    因为需要访问内网,刚上手Mac又没有安装这个软件,然后在EasyConnect官网下载安装后,发现竟然连不上,软件提示:”客户端版本与服务器不匹配,请更新“。接下来就开始了填坑之路,如标题所示。下面就说说我遇到的坑吧,如下:

    1.mac安装EasyConnect,输入Ip后提示:“客户端版本与服务器不匹配,请更新

    在这里插入图片描述

    然后会出来这么个页面,下载安装包:EasyConnectPlugin插件。

    下载完后,安装的过程中那么就可能会出现标题2的坑

    2.mac安装EasyConnectPlugin失败

    虽然安装失败了,但是依然会在应用程序下出现一个图标,还不支持双击打开。那么我都没有安装成功,何来网友说的在Safari中设置插件呢?何来的降级Safari 12 呢?而且降级Safar是有风险的。仔细一想,标题1中提示的是客户端和服务器不匹配,虽然我也不知道服务端是什么版本,但是应该有个版本能够保持一致的吧,然后依旧一波度娘。最终在深信服社区找到了一个可用的版本:"提供临时的支持Mac OS10.15的EC客户端安装包,点击下载 密码: 0uni"。

     

    下载安装后,就可以登录了

    登录成功后,会打开Safari自动跳转弹出如下页面,不用管他,也不需要下载,此时其实已经连上内网了。ps:我安装的是EasyConnect_for mac 10.15(M6.3-M7.5R1)

    可以看到登录信息,那么应该连上了:

     

    总结:说了这么多,这也不是什么技术文,其实就是找到了一个可用的软件而已😂😂,然后记录了一下自己填的坑,这可是困扰了两个星期了,差点就要装双系统了,重装开发环境了,害~ 好在现在解决了,如果哪位伙伴有最终的解决办法了,欢迎留言哈,不胜感激!

    展开全文
  • easyflash 教程

    千次阅读 2019-12-19 10:06:43
    可以看easyflash下的docs文档,万一你们手头没有文档呢。这里我就直接黏贴了。 API 说明文档: docs/zh/api.md 通用移植文档: docs/zh/port.md EasyFlash API 说明 所有支持的API接口都在\easyflash\inc\easyflash...

    可以看easyflash下的docs文档,万一你们手头没有文档呢。这里我就直接黏贴了。

    API 说明文档: docs/zh/api.md
    通用移植文档: docs/zh/port.md

    EasyFlash API 说明


    所有支持的API接口都在\easyflash\inc\easyflash.h中声明。以下内容较多,建议使用 CTRL+F 搜索。

    名词介绍:

    备份区 :是EasyFlash定义的一个存放环境变量、已下载程序及日志的Flash区域,详细存储架构可以参考\easyflash\src\easyflash.c文件头位置的注释说明或移植文档中关于备份区参数配置

    环境变量表 :负责存放所有的环境变量,该表在Flash及RAM中均存在,上电后需从Flash加载到RAM中,修改后,则需要保存其至Flash中。。

    1、用户使用接口

    1.1 初始化

    初始化的EasyFlash的各个组件,初始化后才可以使用下面的API。

    EfErrCode easyflash_init(void)
    

    1.2 环境变量

    1.2.1 加载环境变量

    加载Flash中的所有环境变量到系统内存中。

    void ef_load_env(void)
    

    1.2.2 打印环境变量

    通过在移植接口(\easyflash\port\ef_port.c)中定义的ef_print打印方法,来将Flash中的所有环境变量输出出来。

    void ef_print_env(void)
    

    1.2.3 获取环境变量

    通过环境变量的名字来获取其对应的值。(注意:此处的环境变量指代的已加载到内存中的环境变量)

    char *ef_get_env(const char *key)
    
    参数 描述
    key 环境变量名称

    1.2.4 设置环境变量

    使用此方法可以实现对环境变量的增加、修改及删除功能。(注意:此处的环境变量指代的已加载到内存中的环境变量)

    • 增加 :当环境变量表中不存在该名称的环境变量时,则会执行新增操作;

    • 修改 :入参中的环境变量名称在当前环境变量表中存在,则把该环境变量值修改为入参中的值;

    • 删除 :当入参中的value为空时,则会删除入参名对应的环境变量。

    EfErrCode ef_set_env(const char *key, const char *value)
    
    参数 描述
    key 环境变量名称
    value 环境变量值

    1.2.5 保存环境变量

    保存内存中的环境变量表到Flash中。

    EfErrCode ef_save_env(void)
    

    1.2.6 重置环境变量

    将内存中的环境变量表重置为默认值。

    EfErrCode ef_env_set_default(void)
    

    1.2.7 获取当前环境变量写入到Flash的字节大小

    size_t ef_get_env_write_bytes(void)
    

    1.2.8 设置并保存环境变量

    设置环境变量成功后立刻保存。设置功能参考ef_set_env方法。

    EfErrCode ef_set_and_save_env(const char *key, const char *value)
    
    参数 描述
    key 环境变量名称
    value 环境变量值

    1.3 在线升级

    1.3.1 擦除备份区中的应用程序

    EfErrCode ef_erase_bak_app(size_t app_size)
    

    1.3.2 擦除用户的应用程序

    注意:请不要在应用程序中调用该方法

    EfErrCode ef_erase_user_app(uint32_t user_app_addr, size_t user_app_size)
    
    参数 描述
    user_app_addr 用户应用程序入口地址
    user_app_size 用户应用程序大小

    1.3.3 通过用户指定的擦除方法来擦除应用程序

    当用户的应用程序与备份区 不在同一个 Flash 时,则需要用户额外指定擦除应用程序的方法。而 ef_erase_user_app 会使用移植文件中的 ef_port_erase 方法进行擦除,除此之外的其余功能,两个方法均一致。

    注意:请不要在应用程序中调用该方法

    EfErrCode ef_erase_spec_user_app(uint32_t user_app_addr, size_t app_size,
            EfErrCode (*app_erase)(uint32_t addr, size_t size));
    
    参数 描述
    user_app_addr 用户应用程序入口地址
    user_app_size 用户应用程序大小
    app_erase 用户指定应用程序擦写方法

    1.3.4 擦除Bootloader

    注意:请不要在Bootloader中调用该方法

    EfErrCode ef_erase_bl(uint32_t bl_addr, size_t bl_size)
    
    参数 描述
    bl_addr Bootloader入口地址
    bl_size Bootloader大小

    1.3.5 写数据到备份区

    为下载程序到备份区定制的Flash连续写方法。
    注意:写之前请先确认Flash已进行擦除。

    EfErrCode ef_write_data_to_bak(uint8_t *data,
                                   size_t size,
                                   size_t *cur_size,
                                   size_t total_size)
    
    参数 描述
    data 需要写入到备份区中的数据存储地址
    size 此次写入数据的大小(字节)
    cur_size 之前已写入到备份区中的数据大小(字节)
    total_size 需要写入到备份区的数据总大小(字节)

    1.3.6 从备份拷贝应用程序

    将备份区已下载好的应用程序拷贝至用户应用程序起始地址。
    注意:
    1、拷贝前必须对原有的应用程序进行擦除
    2、不要在应用程序中调用该方法

    EfErrCode ef_copy_app_from_bak(uint32_t user_app_addr, size_t app_size)
    
    参数 描述
    user_app_addr 用户应用程序入口地址
    user_app_size 用户应用程序大小

    1.3.7 通过用户指定的写操作方法来拷贝应用程序

    当用户的应用程序与备份区 不在同一个 Flash 时,则需要用户额外指定写应用程序的方法。而 ef_copy_app_from_bak 会使用移植文件中的 ef_port_write 方法进行写操作,除此之外的其余功能,两个方法均一致。

    EfErrCode ef_copy_spec_app_from_bak(uint32_t user_app_addr, size_t app_size,
            EfErrCode (*app_write)(uint32_t addr, const uint32_t *buf, size_t size))
    
    参数 描述
    user_app_addr 用户应用程序入口地址
    user_app_size 用户应用程序大小
    app_write 用户指定应用程序写操作方法

    1.3.8 从备份拷贝Bootloader

    将备份区已下载好的Bootloader拷贝至Bootloader起始地址。
    注意:
    1、拷贝前必须对原有的Bootloader进行擦除
    2、不要在Bootloader中调用该方法

    EfErrCode ef_copy_bl_from_bak(uint32_t bl_addr, size_t bl_size)
    
    参数 描述
    bl_addr Bootloader入口地址
    bl_size Bootloader大小

    1.4 日志存储

    1.4.1 从Flash中读取已存在的日志

    EfErrCode ef_log_read(size_t index, uint32_t *log, size_t size);
    
    参数 描述
    index 日志读取的索引顺序
    log 存储待读取日志的缓冲区
    size 读取日志的大小

    1.4.2 往Flash中保存日志

    EfErrCode ef_log_write(const uint32_t *log, size_t size);
    
    参数 描述
    log 存储待保存的日志
    size 待保存日志的大小

    1.4.3 清空存储在Flash中全部日志

    EfErrCode ef_log_clean(void);
    

    1.4.4 获取已存储在Flash中的日志大小

    size_t ef_log_get_used_size(void);
    

    2、配置

    参照EasyFlash 移植说明(\docs\zh\port.md)中的 设置参数 章节

    3、注意

    • 写数据前务必记得先擦除
    • 环境变量设置完后,只有调用ef_save_env才会保存在Flash中,否则开机会丢失修改的内容
    • 不要在应用程序及Bootloader中执行擦除及拷贝自身的动作
    • ENV及Log功能对Flash擦除和写入要求4个字节对齐,擦除的最小单位则需根据用户的平台来确定

    EasyFlash 移植说明


    1、下载源码

    点击此链接即可直接下载位于Github上的源码。

    建议:点击项目主页 https://github.com/armink/EasyFlash 右上角 Watch & Star,这样项目有更新时,会及时以邮件形式通知你。

    如果Github下载太慢,也可以点击项目位于的国内仓库下载的链接(OSChina|Coding)。

    2、导入项目

    在导入到项目前,先打开\demo\文件夹,检查下有没有与项目Flash规格一致的Demo。如果有则先直接跳过2、3、4章节,按照第5章的要求设置参数,并运行、验证Demo。验证通过再按照下面的导入项目要求,将Demo中的移植文件直接导入到项目中即可。

    • 1、先解压下载好的源码包,文件的目录结构大致如下:
    源文件 描述
    \easyflash\src\ef_env.c Env(常规模式)相关操作接口及实现源码
    \easyflash\src\ef_env_wl.c Env(磨损平衡模式)相关操作接口及实现源码
    \easyflash\src\ef_iap.c IAP 相关操作接口及实现源码
    \easyflash\src\ef_log.c Log 相关操作接口及实现源码
    \easyflash\src\ef_utils.c EasyFlash常用小工具,例如:CRC32
    \easyflash\src\easyflash.c 目前只包含EasyFlash初始化方法
    \easyflash\port\ef_port.c 不同平台下的EasyFlash移植接口
    \demo\env\stm32f10x\non_os stm32f10x裸机片内Flash的Env demo
    \demo\env\stm32f10x\non_os_spi_flash stm32f10x裸机SPI Flash的Env demo
    \demo\env\stm32f10x\rtt stm32f10x基于RT-Thread的片内Flash Env demo
    \demo\env\stm32f4xx stm32f4xx基于RT-Thread的片内Flash Env demo
    \demo\iap\ymodem+rtt.c 使用RT-Thread+Ymodem的IAP Demo
    \demo\log\easylogger.c 基于EasyLogger的Log Demo
    • 2、将\easyflash\(里面包含incsrcport的那个)文件夹拷贝到项目中;
    • 3、添加\easyflash\src\easyflash.c\easyflash\src\ef_utils.c\easyflash\port\ef_port.c这些文件到项目的编译路径中;
    • 4、根据项目需求,选择性添加\easyflash\src\中的其他源码文件到项目的编译路径中;
    • 5、添加\easyflash\inc\文件夹到编译的头文件目录列表中;

    3、Flash规格

    在移植时务必先要了解项目的Flash规格,这里需要了解是规格是 最小擦除单位内部存储结构 ,各个厂家的Flash规格都有差异,同一厂家不同系列的规格也有差异。例如:stm32f10x系列中的大容量MCU自带Flash的页大小均为2K,而中小容量的页大小均为1K。在stm32f4xx系列中,每个页大小不是像stm32f10x那样平均分配,最大的有128K,最小的有16K。

    注意:务必保证熟悉Flash规格后,再继续下章节。

    4、移植接口

    4.1 移植初始化

    EasyFlash移植初始化。可以传递默认环境变量,初始化EasyFlash移植所需的资源等等。

    EfErrCode ef_port_init(ef_env const **default_env, size_t *default_env_size)
    
    参数 描述
    default_env 默认的环境变量
    default_env_size 默认环境变量的数量

    4.2 读取Flash

    最小单位为4个字节。

    EfErrCode ef_port_read(uint32_t addr, uint32_t *buf, size_t size)
    
    参数 描述
    addr 读取起始地址
    buf 存放读取数据的缓冲区
    size 读取数据的大小(字节)

    4.3 擦除Flash

    EfErrCode ef_port_erase(uint32_t addr, size_t size)
    
    参数 描述
    addr 擦除起始地址
    size 擦除数据的大小(字节)

    4.4 写入Flash

    最小单位为4个字节。

    EfErrCode ef_port_write(uint32_t addr, const uint32_t *buf, size_t size)
    
    参数 描述
    addr 写入的起始地址
    buf 源数据的缓冲区
    size 写入数据的大小(字节)

    4.5 对环境变量缓冲区加锁

    为了保证RAM缓冲区在并发执行的安全性,所以需要对其进行加锁(如果项目的使用场景不存在并发情况,则可以忽略)。有操作系统时可以使用获取信号量来加锁,裸机时可以通过关闭全局中断来加锁。

    void ef_port_env_lock(void)
    

    4.6 对环境变量缓冲区解锁

    有操作系统是可以使用释放信号量来解锁,裸机时可以通过开启全局中断来解锁。

    void ef_port_env_unlock(void)
    

    4.7 打印调试日志信息

    在定义PRINT_DEBUG宏后,打印调试日志信息。

    void ef_log_debug(const char *file, const long line, const char *format, ...)
    
    参数 描述
    file 调用该方法的文件
    line 调用该方法的行号
    format 打印格式
    不定参

    4.8 打印普通日志信息

    void ef_log_info(const char *format, ...)
    
    参数 描述
    format 打印格式
    不定参

    4.9 无格式打印信息

    该方法输出无固定格式的打印信息,为ef_print_env方法所用(如果不使用ef_print_env则可以忽略)。而ef_log_debugef_log_info可以输出带指定前缀及格式的打印日志信息。

    void ef_print(const char *format, ...)
    
    参数 描述
    format 打印格式
    不定参

    5、设置参数

    配置时需要修改项目中的ef_cfg.h文件,开启、关闭、修改对应的宏即可。

    5.1 环境变量功能

    • 默认状态:开启
    • 操作方法:开启、关闭EF_USING_ENV宏即可

    5.1.1 磨损平衡/常规 模式

    磨损平衡:由于flash在写操作之前需要擦除且使用寿命有限,所以需要设计合理的磨损平衡(写平衡)机制,来保证数据被安全的保存在未到擦写寿命的Flash区中。

    • 默认状态:常规模式
    • 常规模式:关闭EF_ENV_USING_WL_MODE
    • 磨损平衡模式:打开EF_ENV_USING_WL_MODE

    5.1.2 掉电保护

    掉电保护:Power Fail Safeguard,当此项设置为可用时,如果在环境变量保存过程中发生掉电,已保存在Flash中的环境变量将不会有丢失的危险。下次上电后,环境变量将会被自动还原至之前的状态。(注意:本保护是基于软件实现的保护功能,更加可靠的掉电保护功能需要通过硬件来实现)

    • 默认状态:关闭
    • 操作方法:开启、关闭EF_ENV_USING_PFS_MODE宏即可

    5.1.3 自动更新(增量更新)

    可以对 ENV 设置版本号(参照 5.1.4)。当 ENV 初始化时,如果检测到产品存储的版本号与设定版本号不一致,会自动追加默认环境变量集合中新增的环境变量。

    该功能非常适用于经常升级的产品中,当产品功能变更时,有可能会新增环境变量,此时只需要增大当前设定的 ENV 版本号,下次固件升级后,新增的环境变量将会自动追加上去。

    • 默认状态:关闭
    • 操作方法:开启、关闭EF_ENV_AUTO_UPDATE宏即可

    5.1.4 环境变量版本号

    该配置依赖于 5.1.3 配置。设置的环境变量版本号为整形数值,可以从 0 开始。如果在默认环境变量表中增加了环境变量,此时需要对该配置进行修改(通常加 1 )。

    • 操作方法:修改EF_ENV_VER_NUM宏对应值即可

    5.2 在线升级功能

    • 默认状态:开启
    • 操作方法:开启、关闭EF_USING_IAP宏即可

    5.3 日志功能

    • 默认状态:开启
    • 操作方法:开启、关闭EF_USING_LOG宏即可

    5.4 Flash最小擦除单位

    • 操作方法:修改EF_ERASE_MIN_SIZE宏对应值即可

    5.5 备份区

    备份区共计包含3个区域,依次为:环境变量区、日志区及在线升级区。分区方式如下图所示

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-27eI29Fp-1576720849511)(http://git.oschina.net/Armink/EasyFlash/raw/master/docs/zh/images/BackupAreaPartition.j)]backupareapartiton

    在配置时需要注意以下几点:

    • 1、所有的区域必须按照EF_ERASE_MIN_SIZE对齐;
    • 2、由于EasyFlash对所有的环境变量都会使用RAM缓存,但是在更多时候用户使用的环境变量大小会比EF_ERASE_MIN_SIZE小,所以需要再定义ENV_USER_SETTING_SIZE来指定用户设定的环境变量大小。
    • 3、环境变量区总容量在不同的模式下会有差异
      • 1、常规模式:没有差异;
      • 2、擦写平衡模式:系统区将会占用1个EF_ERASE_MIN_SIZE大小,数据区至少等使用2个以上Flash扇区;
      • 3、掉电保护模式:环境变量区将会被备份,所以总容量是常规模式的2倍;
      • 4、擦写平衡+掉电保护模式:所需容量将会是擦写平衡模式下总容量的2倍。
      • 例如:EF_ERASE_MIN_SIZE是128K,ENV_USER_SETTING_SIZE是2K,那么你可以这样定义不同模式下的环境变量总容量:
      • 1、常规模式:1*EF_ERASE_MIN_SIZE
      • 2、擦写平衡模式:3*EF_ERASE_MIN_SIZE(它将会有3个Flash扇区去存储环境变量,1个系统区,2个数据区,按照每个Flash扇区可被擦写10W次计算,那么当前配置至少可擦写20W次);
      • 3、掉电保护模式:2*EF_ERASE_MIN_SIZE;
      • 4、擦写平衡+掉电保护模式:6*EF_ERASE_MIN_SIZE;

    5.5.1 备份区起始地址

    • 操作方法:修改EF_START_ADDR宏对应值即可

    5.5.2 用户设定环境变量大小

    • 操作方法:修改ENV_USER_SETTING_SIZE宏对应值即可

    注意:不使用环境变量功能时,可以不定义此宏。

    5.5.3 环境变量区总容量

    • 操作方法:修改ENV_AREA_SIZE宏对应值即可

    注意:不使用环境变量功能时,可以不定义此宏。

    5.5.4 日志区总容量

    • 操作方法:修改LOG_AREA_SIZE宏对应值即可

    注意:不使用日志功能时,可以不定义此宏。

    5.6 调试日志

    开启后,将会库运行时自动输出调试日志

    • 默认状态:开启
    • 操作方法:开启、关闭PRINT_DEBUG宏即可

    6、测试验证

    如果\demo\文件夹下有与项目Flash规格一致的Demo,则直接编译运行,观察测试结果即可。无需关注下面的步骤。

    每次使用前,务必先执行easyflash_init()方法对EasyFlash库及所使用的Flash进行初始化,保证初始化没问题后,再使用各功能的API方法。如果出现错误或断言,需根据提示信息检查移植配置及接口。

    6.1 环境变量

    查看\demo\env\子文件夹中例子的README.md说明文档。测试时可以将\demo\env\stm32f10x\non_os\app\src\app.c中的static void test_env(void)方法体复制到项目中,然后运行测试。

    6.2 在线升级

    查看\demo\iap\README.md说明文档。

    6.3 日志

    查看\demo\log\README.md说明文档。

    注意:easylogger.c是使用EasyLogger与EasyFlash的无缝接口的例子,EasyLogger提供针对日志的很多常用功能封装,详细功能可以查看其介绍。使用这个例子时,务必记得将EasyLogger一并导入到项目中。
    在这里插入图片描述

    rt-thread 软件包 easyflash

    展开全文
  • 解决macOS打开EasyConnect提示“此软件不支持双击打开”的问题; 解决“您的客户端版本与服务器不匹配,请更新”的问题 一、EasyConnect下载 一般浏览器访问服务器地址即可获得下载链接,如下图: 二、安装Easy...
  • 最近经常有easyDarwin平台使用者来询问,easyNVR是否能接入easyDarwin平台,现在的EasyNVR为能在web上直接播放都是输出RTMP、HLS视频格式了, 所以只能对接EasyDSS云平台的, EasyDarwin云平台是RTSP的,接不了了。 ...
  • EasyCharts

    万次阅读 2017-09-03 01:24:52
    EasyCharts一个简单可方便快捷画出折线图、饼图、进度条、柱状图、雷达图的iOS库(Objective-C版本)。新库刚开始维护,希望大家多多支持,可issue、pull request、find bug、feature request 。GitHub地址。还有别...
  • easy mesh

    千次阅读 2018-05-23 16:22:44
    Wi-Fi联盟推出Easy Mesh认证:可跨品牌搭分布式无线网驱动之家百家号05-1514:54Mesh Wi-Fi(网状分布式)是一种更加先进的取代传统无线中继和电力猫的网络覆盖技术,任何一个节点的路由都可以相互通信,形成一个像&...
  • EasyAR尝鲜系列教程之Hello EasyAR

    万次阅读 热门讨论 2015-10-30 15:16:36
    从今天起博主将为大家带来EasyAR尝鲜系列教程,本教程适用的对象是增强现实应用开发者和Unity3D游戏开发者,在阅读本教程前请确保具备增强现实应用开发及Unity3D游戏开发的相关基础知识。在本节及后续内容中,博主将...
  • Easy Save 2 与Easy Save 3 区别

    千次阅读 2020-03-04 16:29:12
    1.操作更便捷 Easy Save 2 保存一个新类型需要花费半天时间 ES3 更快。 2.键值对替代路径。 ES3 保存和读取方法需要输入键值对,开发者不需要关心路径,而是设计好一个 键值对(键是string 值是Object)。在缓存...
  • 这篇文章介绍如何使用EasyAR.unitypackage配置EasyAR 参考资料 1、EasyAR 初学者入门指南 http://forum.easyar.cn/portal.php?mod=view&amp;amp;amp;amp;amp;aid=2 2、EasyAR入门 ...
  • WiFi Easy Connect

    千次阅读 2020-03-02 09:44:50
    Wi-Fi Easy Connect是Wi-Fi Alliance一系列计划之中的一个,为支持简便的网络及客户端设备配置提供了新的机制,可提供更好的用户体验、更高的安全性并支持IoT设备的配置。 基本原理 Wi-Fi Easy Connect允许住宅或...
  • NAT之Easy IP

    万次阅读 2019-10-29 17:34:13
    NAT之Easy IP 允许多个私网地址转换成一个公网IP,很常用 CAL用来做匹配范围时,没有默认隐含允许所有的规则 PC1(IP地址) IP地址:192.168.31.1 子网掩码:255.255.255.0 网关:192.168.31.254 PC2(IP地址) ...
  • An easy problem

    2017-07-19 10:01:50
    Now there is a very easy problem . I think you can AC it. We can define sum(n) as follow: if i can be divided exactly by 3 sum(i) = sum(i-1) + i*i*i;else sum(i) = sum(i-1) + i; Is it very easy ? ...
  • vscode配置 easy sass

    千次阅读 2020-11-07 12:13:30
    vscode配置 easy sass 具体介绍请参照:https://www.imooc.com/article/19624 第一步:首先在vscode插件库中下载easy sass插件 第二步: 第三步: 这个是默认配置 "easysass.compileAfterSave": true, `为false避免这...
  • 诸位,我是第一次摸这个EasyDarWin服务器的,如果你想搭建该服务器我觉得你应该也知道这是什么,干什么用的,我也就不说它的作用了。网上关于EasyDarWin官网配置视频资料文档一大堆,眼花缭乱,让你苦不堪言,配置和...
  • Easy CHM

    千次阅读 2013-05-13 20:15:21
    使用EasyCHM只需要三个步骤就可以完成CHM的制作:1、用户指定一个目录,EasyCHM会自动导入全部目录及文件;2、设置CHM编译选项;3、开始制作。EasyCHM非常适合个人和单位制作高压缩比的带有全文检索及高亮显示搜
  • EasyConnect 自定义路由表

    千次阅读 2020-07-02 23:48:42
    2020/07/02 如今有很多学校、企业选用 EasyConnect 套端作为远程... 在我使用 EasyConnect 远程访问学校校园网时,尴尬的问题来了:EasyConnect 默认做全局代理,而我只是想用 EasyConnect 访问知网或校园网资源...
  • PlayerPref Easy Save 插件
  • ubuntu 18.04.1不支持easyconnect有什么解决办法或者是easyconnect的替代品吗?
  • EasyUefi安装教程

    千次阅读 2020-06-05 13:35:41
    EasyBCD只适合efi的系统进行引导启动选项,不适合uefi的系统,但是现在大多数电脑都是uefi的,这样可以更加快速启动电脑,所以我们需要EasyUefi来引导。 这里我准备好了需要的EasyUefi提取码:k3dr 开始我们的安装...
  • ubuntu 20.04 下安装easyconnect记录

    千次阅读 多人点赞 2020-08-18 10:20:07
    @[TOC]ubuntu 20.04 下安装easyconnect记录 最近需要在linux下连接公司内网,试了下主要有一下两个问题:easyconnect在ubuntu20下无法打开;在解决第一个问题后打开easyconnect闪退。 参考以下两个博客 Ubuntu 20.04...
  • easyswoole 自定义命令

    2019-12-18 14:21:04
    看了下官网的介绍,感觉和laravel 自定义命令差不多。...use EasySwoole\EasySwoole\Command\CommandInterface; use EasySwoole\EasySwoole\Command\Utility; class Show implements CommandInt...
  • Ajax与JQuery easy UI实战

    千人学习 2016-09-29 16:15:31
    肖老师这套课程,从XmlHttpRequest-->>JQury->>JQuery Easy ui ,详细讲解了基于js脚本的异步通讯方法
  • [华为easy-IP ] easy-IP 的介绍和配置

    千次阅读 2019-03-19 22:33:58
    0x1 easy-IP 的介绍 1.easy-IP如何工作? 工作方式和NAPT一样,转换后的公网IP为路由器出口的公网IP。 2.easy-IP如何配置? 1.第一步定义私网地址池; 2.第二步进入公网接口关联私网地址池。 [R1]acl 2000 [R1-acl-...
  • 在用EasyConnect连接vpn时提示如下错误: 2、解决步骤 (1)、在cmd窗口使用ping 、telnet命令,检查网络,端口是否合适。 (2)、在ie浏览器输入vpn地址,看能否打开,如果在浏览器中无法访问,需进行如下设置: ...
  • EasyConnect

    千次阅读 2014-11-16 21:51:46
    EasyConnect是一种应用软件,它能够帮助您在办公室之外使用公司内网的所有系统及应用。在您的公司部署深信服远程应用发布解决方案后,您的公司所有业务系统及应用都可以轻松迁移至移动互联网上。您可以通过手机、PAD...
  • easy connect for Mac 详细安装教程

    万次阅读 2019-03-05 10:34:52
    easy connect for Mac 详细安装教程 easy connect for Mac 详细安装教程 1.下载easy connect 访问https://vpn.dtwave.com/ 会跳转到软件下载地址选择对应系统的安装包点击下载即可 2.软件安装,常规软件安装步骤,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 185,523
精华内容 74,209
关键字:

easy