开发板到手有一段时间了,刚好是年底春节前,各种公私杂事颇多,没有太过深入研究学习。目前项目上也没有具体使用到相关芯片及开发环境,看参考手册,数据手册,有了初步了解,谈不上深入,后面提到的一些问题和建议仅供厂家参考。
    至于开箱、环境搭建其它同学都说得太多了,就不赘述了。此处省略1000字。
    对于一款新的芯片,从不熟悉到熟悉,总是从官方例程开始,我也不例外,下好资料包,尝试官方工具过代码下载成功,就盯着lvgl_demo例程看,断断续续,也算了解大概。
    优点:
一、开发环境易于搭建,直接给到的Keil工程,参照例程很容易调试跑通。
二、用官方的下载工具,非常方便,加载少些文件后,连上串口,打开烧录,开发板复位即可自动烧录。同时下载软件也可以查看串口调试信息,不用更换其它串口软件,省事。
三、芯片方面,功能强大,接口很多,支持BT双模,驱动RGB屏显,xip访问外部flash。
    不足:
一、lvgl例程中夹杂了太多的无用代码,增加了阅读难度,容易误导。整个工程的架构有点复杂,其中有些函数弯来拐去的,来回调用,又加上RTOS的事件驱动,没有指导文档,对于新手来说,有很大阻力。
二、芯片规格书和手册对于芯片内部叠封flash及spi接口的PMU语焉不详,及时看代码也比较迷糊,感觉不好下手。
三、芯片方面,缺少图形加速处理(类似于STM32的DMA2D),在图形复杂处理的时候,明显不足,后面视频可以看到。
==========分割线===========
下图是main.c中,hw_xip_flash_init()函数,进入内部看了分析,我认为式初始化内部叠封的flash,用于程序存储。但疑惑的是,在这之前的代码又是从哪里加载运行的呢?
Freq-1.jpg
上图中,hw_external_flash_init()是初始化外部flash,其实在ext_flash_program()中有初始化外部flash,但如果没有连接下载,就不会初始化,所以这里再做一次初始化。

当我看到下图中用lv_img_set_src()时,又跟进查看了图片源
Freq-3.png
图片源数组:
Freq-4.png
图片定义:
Freq-5.png
图片起始地址:
Freq-6.png
跟进lv_img_set_src()内部,看到Freq官方对这个函数做了修改,可以看到图片地址增加了基址:0xC0000000
Freq-7.png
由此,我猜测是把外部Flash映射到0xC0000000起始的地址空间,但没有看到规格书上有明确说明。
另外从Freq官方的keil下载算法也可以看出端倪,都是ext. flash spi
Freq-8.png