开箱
【富芮坤FR3068E-C】经申请发货收到了,以下是开箱照片:

富芮坤公司提供了两条线,一个是黑色的USB A-type-c插口电源线,一条白色的USB A-microB接口作为数据下载线。插上电源线后,拍照如下:

开发板胶片说明有四个按钮和一个复位按钮,我只看到了四个按钮,没有找到其它按钮。但在摸索过程中,发现单板下面的四个按钮最右边的复位按钮就是复位按钮。其它三个按钮从左到右是返回按钮、确认按钮和向下走的方向按钮。确认按钮在点击表格中一行后进入相应图形界面,具体没有拍,不过后来发现编程发现实际其中一个图形界面就是轮流显示其它功能界面,大家可以看后面启动过程和界面后面的视频,都是一样的。

经过了解,单板必须在Windows系统下进行下载:首先要把debug口以及Type-c电源口都连接到PC上。 开发板提供了专门的Windows下载工具,可以直接把Bin文件下载到芯片中,无需安装直接打开。
编译和烧录
我了解了一下,最好用Keil编辑器(keil可以通过下载米尔科技的MDK5.36),同时需要安装Python3。在公司提供给的样例源码中有keil工程文件,我看也有gcc等,但是富芮坤公司的技术支持说最好在keil中开发,这样比gcc进行编译所需要的自己写makefile .ld .cfg巨大的工程量要小很多。
富芮坤公司提供的两个下载工具,一个是烧录外部flash程序FR5080_DSP_MCU,一个是下载主CPU运行的Flash程序。不知道这样理解对不对,后面我会在调试中进一步摸索。
富芮坤公司还提供了基于Freertos的FR3068E-C SDK系统框架,配合丰富的中断响应来实现整个代码的运行。SDK文件结构包含了MCU外设驱动, 应用层的 例程代码, 都是以源码的形式提供,后面后续还要花更多的时间学习。
这几天先熟悉了MDK的编译和烧录文件的下载。MDK加载了demo工程文件,然后编译成功,然后打开富芮坤公司提供的下载工具,开始比较小心,反复核对了富芮坤公司提供的开发环境说明书、上手开发手册等,调试始终没有办法连接上。后来猜是不是通讯速率太高,设置为最低速率,复位单板竟然成功了,但是下载后总是CRC校验不成功。后来在微信圈问了一下,发现下载工具中的菜单中有一个SN选项菜单打开后要去掉选中的“SN”。去掉后就下载成功了,而且单板也正常运行。
启动过程和首页界面分析
然后分析了一下单板demo中的上电启动过程,发现启动文件主要由main中app_task_init实现任务创建和调用,具体app_task初始化(这个是在与main一起的目录下app_task.c文件中定义的。其实这个初始化程序设计很简单,就是将app_task创建了。这个创建函数实际是在tasks.c中定义的,而这个处理过程函数即app_task__event_handler也是在app_task中定义,这个handler则判断输入事件的类型,调用不同的处理函数。例如调用app_lvgl_init(),则开始了屏幕的显示处理。(app_lvgl_init()在app_lvgl中进行了定义,实际上就是利用xTaskCreate创建了一个gui_task,这个函数过程如下:lfs(大文件存储?)定制初始化;lvgl初始化(?屏幕初始化?(lv_init()这个函数在lv_obj.h进行了定义,没有看到.c文件,难道?),读取键盘(有键盘初始化,但不知为什么注释掉了),然后就是调用了lv_prj_main(),这个文件在examples/evb_demo/lvgl_demo/src/lv_frame下的fr_guimain.c文件中进行了定义。
这个fr_prj_main()函数最后是调用fr_logo_page_func函数,这个函数是在examples/evb_demo/lvgl_demo/src/lv_app下的文件lv_fr_test_page.c中实现的,即和测试页面一个文件中。这个函数最后创建了一个延时进入页面语句:lv_timer_create(logo_timer_cb,20,img_cont),这个函数调用同样在这个文件中,应该是延时进入到logo_timer_cb这个函数中,具体实现在lv_timer.c中,还要看lv_timer是什么意思,没有细看,应该是延时进入)
logo_timer_cb这个函数的意思最后看就是锁定时间到了之后,lv_timer删除,界面进入fr_list_page。这个界面是一个列表界面,看着很不得劲,所以后面显示内容主要想修改这个界面就可以算成功了。
本来想做的一个将现有列表界面替换为轮流显示具体demo的程序,后来发现单板自带,就改了马上就实现了。如下面的视频:llvgl模拟器安装
熟悉lvgl过程中看到哔哩哔哩网上有一个关于lvgl的视频,看到其中有安装模拟器的视频课程,大概在第15课吧。就按照上面的Windows安装codeBlocks带MinGW插入两个文件套件成lvgl模拟器,可以不用每次下载到单板调试单板界面。但安装过程中发现lvgl网页引导的CodeBlocks带MinGW的版本和lvgl源码实际只有一个文件套件即lvgl下载即可,另外一个套件drivers不需要了。
安装完后打开指定工程,进行编译,总是有两个常量编译错误,说没有赋值。查了网上各种说法,有说需要MinGW版本太低,需要升级的;还有说只需要在同一文件的define区域指定给赋值1、2即可。采用了第二种方法赋值后立即编译正常,而且输出了模拟界面,然后按照富芮坤公司给的显示屏参数修了(和这个链接下的修改一样:https://getiot.tech/lvgl/lvgl-simulator/),也是成功的。
还有高手推荐Gui-Guider(GUI Guider是恩智浦提供的用户友好型图形用户界面开发工具,可通过开源LVGL图形库快速开发高品质的显示。GUI Guider的拖放编辑器可以轻松利用LVGL的众多特性,如小部件、动画和样式来创建GUI,而只需少量代码或根本无需任何代码。可以在模拟环境中运行应用或将其导出到目标项目。可以很轻松地将GUI Guider生成的代码添加到MCUXpresso IDE或IAR Embedded Workbench项目中,从而加速开发过程,并允许无缝地将嵌入式用户界面添加到应用中。GUI Guider可免费与恩智浦的通用和跨界MCU一起使用,并包括用于多个受支持平台的内置项目模板。):
https://www.nxpic.org.cn/module/forum/thread-803386-1-1.html
至于我自己后面有时间有兴趣了再试试。
