0
Bodong Lee

您好,

我是一个嵌入式开发人员,从前年开始使用ESP8266进行开发,到前段时间看到了相关RTL8710模块与ESP8266相关对比,对于RTL8710的参数相关满意,经集体讨论以后,决定在最新的开发上面使用RTL8710来进行开发。

我们使用的是官方文档中推荐的RTL00开发板进行开发,我们进行开发都是从一个干净的工程开始的,工程中不应包含任何不使用的代码,而开发到需要使用SDK提供的功能的时候再把需要的接口文件包含进工程来。这些工作在其他芯片SDK上基本上都是很简单的工作,或者他们都提供这样的工程。但在你们提供的3.4b3版的SDK来说却相对不是很方便,主要问题:

1。库源文件中包含example源文件的头文件,如:

wifi_conf.c 中包含了wlan_fast_connect/example_wlan_fast_connect.h

2。库源文件/静态库extern example源文件中的变量或者函数,如:

wifi_conf extern中在example_wlan_fast_connect.c中定义的p_write_reconnect_ptr变量

(这样的情况比较多,从工程中删除example目录以后报的绝大部分错都是这样的)

3。库头文件不给出函数接口,却在使用的源文件对应的头文件中进行函数接口申明

代码的依赖关系可以存在于库源文件之前,或者是用户程序对于库头文件的单向依赖,但以上这些问题都造成了库文件对于例程源文件不合理的一个依赖关系,也就是核心层对于用户层的依赖关系,这个是我所从来没有见到过的。

由于以上的问题,我们并没有对SDK进行清理,而是直接将main文件清空,然后从这里开始写我们的用户代码,但也就是这样的原理为我们后面的工作埋下了隐患,我们目前以main函数为起点,添加了我们的功能代码,不超过2000行的代码,开始出现问题,代码在低优化等级下开始出现CODE空间不足,昨天是最低mid优化可放入,到今天必需要高优化等级才可以将代码烧录成功,但一味提高优化等级并不是解决问题的办法,因为编译器的优化能力也有限,并且由于必需要进行高级优化才能进行烧录,目前已经无法进行调试了(编码器对代码流程优化造成调试流程与CODE流程不对应)。我们之前用8266也做过类似的功能,却可以完全胜任。

希望能够等到一个没有任何用户功能(SDK中example 和 at console等)的干净工程,或者是我们这里有什么问题也希望能够指出。

多谢。

xiaolongba 編輯了回應