本次测评严格按照开箱-->上电-->跑Demo-->SDK二开进行。

一句话结论:板子性能强悍,开发环境友好,开发资料完整。
一、开箱:
     首先感谢面包板举行本次活动,也感谢ArtInChip技术人员的大力支持,谢谢。
     参加活动后经过漫长等待终于拿到了这块名为:D13x KunLun Pi V1.0的开发板,正反面靓照如下图所示,整体颜值8分,美中不足的是本次开发板没有搭配WiFi模块、喇叭、摄像头等外设,导致可玩性略有打折:

153503v01kh33plh01lpqq
153503hcypxsjx2ytjjtts

板子主要参数和典型应用领域如下:

  • 开发板主控为 D133CBS (8M PSRAM),可 Pin to Pin 兼容 D133CCS(16M PSRAM)
  • 片上 1MB SRAM,片上 8MB PSRAM(视主控型号决定)
  • NOR FLASH 16MB,可兼容 NAND FLASH
  • RTC 实时时钟
  • 1 x USB2.0 Device 烧录,支持 OTG
  • 1 x UART0 串口打印,1 x JTAG 单步调试
  • 1 x TF-Card 接口
  • 标配 4.3 寸 RGB 显示屏,支持通过排针扩展 LVDS、MIPI、I8080、QSPI 屏等接口
  • 配电容式触摸屏,支持电阻式触摸屏
  • 1 x 喇叭;1 x DVP 摄像头接口
  • 1 x RS485;1 x UART TTL,可兼容 RS232
  • 1 x SDIO WIFI
  • 5V 单电源供电(Type-C 接口)
  • 应用于工业 HMI、 网关、串口屏等泛工业和智慧家居领域。

二、上电:

板子支持USB Type-C数据线供电,连到充电头或电脑上就可以直接上电了,上电后的界面如下图所示,屏幕显示清晰,触摸反应流畅:

153503oeqzslyqzgmqzhmm

三、跑Demo:

跑demo之前先找资料,ArtIn Chip官网提供了完整的资料库,链接:AIC 文档中心快速入门 (artinchip.com),首先参考文档搭建开发环境,本开发板的开发环境主要用到了以下软件和技术:

  • Scons自动化构建工具
  • GCC编译工具链
  • Python运行环境

好在ArtIn Chip为我们准备了打包好的环境,在windonws环境下直接

git clone https://gitee.com/artinchip/luban-lite.git

下来就可以直接开搞了,由于luban-lite是 ArtInChip 基于 RT-Thread 系统深度优化的 RTOS SDK,所以本次测评也用它了。

        环境准备好后,就可以可按照教程一步一步往下进行了,下面是几张编译、烧录的截图,供初学者参考:

153504qlqs3rnr3yl4syxr

选择13进行编译,编译完成后如下所示:

153504xkfmbl1fpz8bxixv

之后用AiBurn进行烧录:

153504aioa88ow181w66aa

烧录完成后板子会自动重启并显示如下界面,官方SDK携带挺多demo,但经测试很多都不能用,只有这个功能最完整:

153506ifztogh2o212w2h7

四、SDK二开:

        咱也不能一直跑厂家的demo,这样就失去了DIY的意义了,还是得搞点自己的东西,接下来进入重头戏,SDK二开,这里提供一个简单的二开流程,抛砖引玉:

        二开的话还需要其它几个工具:

  • Eclipse IDE,方便修改编辑代码
  • SequareLine Studio,LVGL的官方推荐开发环境,功能强大且对个人开发者免费。

本次二开是在第三节demo的基础上加入一个子页面,上面的demo跑起来后可以发现第二页和第三页的的图标点了之后都没反应,这是因为厂家没有提供对应的实现代码,我们刚好可以以此为基础实现自己的页面,下面详细说明步骤:

  • 先后执行scons --target=eclipse和scons --target=eclipse_sdk此操作用于生成eclipse工程,方便添加修改代码,导入eclipse之后如下图所示:

153506yjow1jto2kjht4bp

NULL表示没有相应回调函数,故相应页面无法显示

  • 下载安装SequareLine Studio用来编辑界面,安装完成后新建一个工程,设置好屏幕参数,本次示例只显示一个Label:

153506tlwcp5cwtxkt111x

  • 然后使用SequareLine的Export功能将界面导出来代码,目录结构如下:

153508jg0kgrl4bz1zb1dg

由于不需要那么复杂的功能,可以删掉ui_helpers等文件,用来精减代码,精减之后代码包含两个文件,内容如下:

<头文件>

#ifndef _SHOW_DATA_UI_H

#define _SHOW_DATA_UI_H

#ifdef __cplusplus

extern "C" {

#endif

#include "lvgl/lvgl.h"

#include "aic_ui.h"

// SCREEN: ui_datashow

lv_obj_t* ui_datashow_screen_init(void);

//extern lv_obj_t * ui_datashow;

//extern lv_obj_t * ui_lbData;

//extern lv_obj_t * ui_Label2;

#ifdef __cplusplus

} /*extern "C"*/

#endif

#endif

<源文件>

#include "ui_datashow.h"

static void print_ui_cb(lv_event_t * e)

{

    lv_event_code_t code = lv_event_get_code(e);

    if (code == LV_EVENT_SCREEN_UNLOAD_START) {;};

}

lv_obj_t* ui_datashow_screen_init(void)

{

        lv_obj_t * ui_datashow = lv_obj_create(NULL);

    lv_obj_clear_flag(ui_datashow, LV_OBJ_FLAG_SCROLLABLE);      /// Flags

    lv_obj_t * ui_lbData = lv_label_create(ui_datashow);

    lv_obj_set_width(ui_lbData, LV_SIZE_CONTENT);   /// 1

    lv_obj_set_height(ui_lbData, LV_SIZE_CONTENT);    /// 1

    lv_obj_set_x(ui_lbData, -64);

    lv_obj_set_y(ui_lbData, -22);

    lv_obj_set_align(ui_lbData, LV_ALIGN_CENTER);

    lv_label_set_text(ui_lbData, "D13x KunLun Pi Testing by Troy ......");

    lv_obj_add_event_cb(ui_datashow, print_ui_cb, LV_EVENT_ALL, NULL);

    return ui_datashow;

}

将这两个文件添加到工程中,并在navigator_ui.c中添加相应实现后编译工程并烧录,结果如下所示,至此简单的二开完成,各位伙伴可根据自己的需求进行更复杂的开发:

153508dggqtbluuuuo3z88

        至此本次简单测评已经完成,接下来需要根据需要开发具体项目应用,如果想进一步学习,建议从以下资料入手:

  • RT-Thread文档及源码
  • 平头哥E907开发文档
  • LVGL文档