1、前言
由于对乐鑫的ESP8266,ESP32等很熟悉,深深感受到其开源的良好的开发生态,国内外爱好者大量使用。在电子发烧友论坛申请了一个类似于ESP8266的开发板----跃昉科技BF2开发板。想看看这个芯片的开发环境,代码,性能指标等是否好用。 收到开发板快递,很简单只有一个板子,图片图所示。板子很简单,较为惊讶的是USB接口还是古老的MiniUSB,幸好手头上有数据线。但是看到板子上喷了三防漆,不知道为何这样做?因为跳线帽都被黏住了,要用钳子大力拔出来,稍不注意跳线帽都可能损坏了。
2、安装开发环境
收到SDK和工具链之后尝试安装开发环境。在BF2 SDK 入门指南中说明要安装MSYS2安装包,这个厂家没有发过来,需要自己下载,好在我之前编译ESP芯片时需要make环境,已经安装了MSYS32,就将BF2-SDK文件夹挪到msys32homeadmin目录下。运行msys2.exe切换到要编译的目录,运行./genromap即可编译。由于不用下载安装msys32,可以说我是拿到开发板最早编译成功并点灯的。
3、试用体验
开发工程师测试一个系统所有的测试均从点灯开始,甚至有了点灯科技这家公司。拿到开发板第一目标是点个灯,或闪个灯或者打印一个“hello world”。打开资料包发现没有开发板的原理图!这个大为不解。这个是最基本的。好在板子简单对工程师不是难度,用万用表测试一下即可板载LED是GPIO5驱动。在helloworld程序中添加一些代码。编译成功。
- void lpf_main(void)
- {
- lf_uart_init(0, 16, 7, 255, 255, 2 * 1000 * 1000);
- helloworld();
- lf_gpio_enable_output(5,1,0);
- while(1) //peng add for blink board LED
- {
- lf_gpio_output_set(5,1);
- lf_timer_delay_us(1000*1000);
- // vTaskDelay(1000 / portTICK_RATE_MS);
- lf_gpio_output_set(5,0);
- lf_timer_delay_us(1000*1000);
- // vTaskDelay(1000 / portTICK_RATE_MS);
- }
- }
但是将程序烧到板子上还是尝试了几次。为何,文档写的不明白!从群里其他人反馈来说很多人也是卡在这里。由于没有开发板和模块内部的原理图,甚至不知道所用的Flash容量多大,是内置还是外置,晶振频率是多少?没有文档说明。只能猜测。
主要原因在下图,说明了flash启动模式和uart引导模式,应该加以说明这两个功能是什么意思。大白话:flash启动模式就是程序正常运行模式,uart引导模式就是程序下载到板子上模式。另外文档中“先取下跳线帽,再给模组上电”,这操作步骤有误,应该是短接IO8和HI排针,程序进入下载模式。短接IO8和LOW程序正常运行。下图中说明误导了很多人。
4、发现的问题
在编译WiFi相关的例程中,发现dns_server_init函数为定义,查看代码发现程序中写了DNA,修正为DNS后还是编译不过,找不到dns_server_init函数,干脆将dns_server_init.c和.h拷贝到相应的目录,并在相应的mk文件中添加编译这个文件后编译通过。
说明整个SDK开发包并没有遍历测试。
- //#ifndef __DNA_SERVER_H__ peng
- //#define __DNA_SERVER_H__
- #ifndef __DNS_SERVER_H__
- #define __DNS_SERVER_H__
- void dns_server_init(void);
- #endif
-
5、总结
简单上手试用发现代码写的还是比较好,特别是cmd_gpio_func程序,通过串口命令发送所要测试的内容,很方便。涂鸦等接入网络操作较复杂没有测试。
需要完善的是,需要提供开发板和模块的原理图,器件的datasheet也写的比较简单,有些信息如器件是否内置还是外置flash没有说明。
由于已有ESP8266成功案例,此芯片若想推广,应该需要一个开源的生态环境,资料详尽,SDK参考例程丰富,并提供很多如驱动单色及彩屏,I2S音频,SD卡,矩阵键盘扫描等例程。并开发支持arduino的库,这样才有大量的爱好者加入开发。
开发更多的开发套件,并多渠道发布并可以便捷的低廉的价格方便获取。