5、固件源码详解(一)
上一次说了一下固件烧录之后的后期现象,从这一次的帖子开始就逐渐分析源码内容了,这个难度稍微有点大,因为程序是人家写的,所有思路和情况都要安照人家的要求来,读别人的程序难也就难在这里。从另一方面来说这将是一个难得的学习机会,因为在学校基本不可能会接触到想这样完全开发好的、市面已经应用上的一个开源的产品!这也正好可以让我们提前接触一下他们已经工作的前辈的开发流程和经验,看完他们写的这个源码之后才发现自己在学校学习后的水平和在职工程师的水平是有多么大的差距,瞬间感觉自己目前水平就是渣渣!可能是我个人水平太低,感觉人家写的程序比较完美,正是认识到了自身的不足才要奋力弥补自己,缩小差距。接下来我就以我个人的拙见在摸爬滚打中分析一下官方的固件源码:
一、 固件源码目录分析:
打开固件源码主目录,里面有12个文件内容(其中一个是我个人添加的内容——My SI,后面会讲到):
1、bin: 里面有我们之前编译出来的几个固件还有其他的几个bin文件,boot,bin参数配置文件。
其中里面的第一个文件夹里面有个download文件夹,里面放的应该是我们烧录固件时间的配置文件,但是打开看到里面只有编译后固件的其中2个,其余的不知道在哪,不知道这个会不会影响我烧录后的效果。
2、et_app: 这个是非常重要的,里面是整个源码的位置和应用程序的配置!后期我们就要查看和修改里面的源码实现自己的功能。内部各个文件功能详情如下:
① .output:这个是编译程序、调试的输出信息文件,每一部分的函数编译调试之后都会在各自文件夹内生成该文件。
② driver:里面放着我们重新源码的各个功能函数的封装好的驱动,在用户程序里面是可以直接拿来调用的。比如gpio、i2c、OLED_I2C之类的功能函数。
③ include:里面是程序源码使用到的各种头文件,非常重要,同时里面也包含了驱动程序。
④ sample_lib:这个具体是什么东西不太清楚,可能是几个库文件。
⑤ user:这个就是用户程序了,我们后期就要重点研究这些源码,并且去修改它们。
3、extra_include:里面全是第三方头文件的库。
4、include:系统相关头文件所在目录。
5、Ny SI:这个是我的一个编辑器的工程文件夹,里面放着软件的工程等相关文件,不是开发必要的东西,不必关注,后面会使用到这个软件也会有相应的介绍。
剩下的还有一些文件夹和文件不需要我们太关注,我们后期开发无需操作,只需要了解一下即可,官方的文档介绍了一下:
看完所有程序源码文件的总体结构框架后,我们进入到内部程序也就是用户程序去真正的看看他们是如何一步一步的实现功能的。那首先就要先找到主函数了,主函数就在上面说过的最重要的et_app文件夹里面的user用户程序文件夹里面,找到那个user_main.c 这个已经表示的很明显了,就是用户主函数。我们从这里入手再一步步的潜入到其他的调用函数中去,不至于打乱我们看程序的思维。但是由于其函数内部牵扯到太多的外部函数,而一些外部函数包括头文件、功能函数驱动等又在另外的文件夹内,查看代码实在不方面,效率大打折扣。这也是工作了以后的常见情况,毕竟公司不必学校,你自己写的那点程序又能多麻烦呢,更何况一个程序还有其他的程序员要使用要参考,不得不规范化程序源码,所以也就有了这么多的各个文件夹。刚开始我是用记事本打开的这个程序,看到调用其他外部函数了我又用keil打开另外的函数,但是函数里面有嵌套了其他的函数。这个总不能都用其他软件打开吧,后期我上网查了一下有没有什么好一点的编辑器,我发现有些程序员用的是Source insight这个编辑器,好多公司人员的也是用的这个,所以我就下载了这个软件使用,毕竟到了一定时期需要更高端的编辑器。下面就是这个软件方面的相关介绍了。
二、Source insight软件的安装破解及固件源码的添加
Source Insight是一个支持多种开发语言(java,c ,c++等等)的编辑器,由于其查找、定位、彩色显示等功能的强大,通常被大家当成源代码阅读工具使用。其名字含义就是“深入到源代码”!可想而知功能还是比较强大的,下面就开始安装和破解等操作了!
1、启动Source Insight的安装程序进行安装流程(具体步骤就不再多说了)。
2、安装完成之后启动应用程序,软件会提示注册信息。如果不进行注册只有35天的试用期,输入3段注册码进行注册。 注册码:SI3US-361500-17409 (这个占时是可以用的!)
之后点击OK,系统提示注册成功的信息:
然后会让你填写你的个人信息,名字还有你的公司,这个就我就随便填的。(电脑上装了这么多盗版软件,如果哪一天人家起诉的话要赔好多钱呀~~~~~~~现在国内经常有被起诉的事发生)
3、软件注册完毕之后,开始新建工程,第一次软件会自动弹出建工程的窗口:
① 这里填写新建工程的名称,尽量不要含中文,不知道会不会影响软件的使用,万一有影响到时候找原因有麻烦了。
② 选择工程的路径,最好建一个文件夹,专门放该工程相关的文件。
4、添加我们要查看的源码路径:
上一步点击ok之后,进入到导入源码路径配置界面:
图中的红框内就是我们要编辑查看的固件源码所在的文件夹,我们要查看哪些程序就在这里导入路径就好了。系统自动将该文件夹下的所有文件和程序全部添加进SI工程,方面后期的查阅和编辑,点击ok。
5、配置该软件使用到的相关库文件路径:
这个软件上面简单介绍过了,功能比较全的,而且软件非常小,原因就是该软件本身是不带相关库文件的,而我们以前使用的软件一般都自带的有库,所以这里需要我们手动配置需要的库文件,也就是使用你电脑上其他软件里面的库,如果不配置的后面查看代码可能会出现无法查看的各种各样问题。我之前安装过VC++6.0,里面有C和C++相关的部分库,系统自动找到路径了我们就不需要配置前两项了。至于Java和.NET我没怎么学习过也自然没有它的库了,我们这次看的固件源码是C,所以占时不用安装这两个库了。(配置库文件的步骤具体出现在那个步骤忘记了,反正就第一次使用添加,之后就不需要了)。库文件路径选择完之后,点击continue继续。
6、 点击Add Tree开始添加程序源码文件夹内的所以文件内容,过一会会提示添加了多少的文件,然后close关闭该窗口即可。网上有说Add Tree和Add All的区别的,不知道什么区别,有建议选择Add Tree的,这里就先暂时也选择Add Tree吧!
这个时候所有的程序都被添加到了这个SI工程当中,我们可以随时双击右边程序文件进入到某一程序内部查看源码内容。
这里我们就先找到用户主函数,在右边的文件名字里面搜索main就可以定位出来该程序了,之后双击打开,主界面就把选择的程序显示在主窗口了。同时在最左边的窗口内有这个程序的所有函数名称,点击某一个函数,主界面就会定位到该函数所在位置,也是非常的方便!最下面的一个窗口也给我们提供了方面:当你在程序主界面点到某一个函数或关键字,它都会给你定义到准确位置。若是鼠标放到一个函数上面,它就直接在下面进入到该函数内部,省去了我们另外打开程序的麻烦,省时省力!
本帖Word版教程:小e源码详解(一).rar(604.59 KB, 下载次数: 30)
2016-2-2 15:29 上传
点击文件名下载附件官方前期文档:①小e开发向导:M302I-ESP8266-Developmentguide.rar(707.64 KB, 下载次数: 28)
2016-2-2 15:30 上传
点击文件名下载附件②小e应用层API说明:M302I-ESP8266-API.rar(728.23 KB, 下载次数: 23)
2016-2-2 15:31 上传
点击文件名下载附件Source insight编辑器:(注册码帖子内容有)
SourceInsight_V3.5.76.0_Setup.1429178754.rar(5.41 MB, 下载次数: 45)
2016-2-2 16:48 上传
点击文件名下载附件加油加油, 看的出来,花了很多心力的。
!真棒,期待后期讲解
难的还在下一篇
恩恩, 接下来就是应用与项目进展了吧,这个更是要花费心力的。
有没有,配套的开发板呢。
当然有啊,就是小e呀!
谢谢分享 .................
牛人啊 大神 ....
接触之后你会发现这很普通。我不是大神!
写的很详细,赞一个
谢谢分享 ...很详细,赞一个 !