页次: 1
1. 参考设置图像搬移blt参数中的src和dst的format即可,实现不同格式的转换:
https://gitee.com/artinchip/luban-lite/blob/master/packages/artinchip/mpp/mpp_test/pic_dec_test.c
2. pic_dec_test.c中图像搬移代码示例,可以设置原图和目标图的format不一样
blt.src_buf.buf_type = MPP_PHY_ADDR;
blt.src_buf.phy_addr[0] = (u32)(long)src_buf;
blt.src_buf.format = info->format; // MPP_FMT_ARGB_8888
blt.src_buf.stride[0] = info->stride; // src stride信息要填写正确, 需要 8 bytes对齐
blt.src_buf.size.width = info->width;
blt.src_buf.size.height = info->height;
blt.dst_buf.buf_type = MPP_PHY_ADDR;
blt.dst_buf.phy_addr[0] = (u32)(long)dst_buf;
blt.dst_buf.format = info->format; // MPP_FMT_RGB_R65
blt.dst_buf.stride[0] = info->stride; // dst stride信息要填写正确, 需要 8 bytes对齐
blt.dst_buf.size.width = info->width;
blt.dst_buf.size.height = info->height;
ge_bitblt(&blt);
1. 在LVGL V9中可以在 lv_conf.h中配置字体缓存的个数
2. 在LVGL V8中也可以在 lv_conf.h中配置字体缓存的size
3. 可以通过调整 freetype的缓存配置参数,来调整最大的缓存占用量,目前只能设置缓存的上限,不能自己去释放缓存空间
4. 目前lvgl自身的运行也会从sys heap中申请内存,freetype也会从 sys heap中申请内存,可以调整LVGL用自身的堆管理(预留一块静态数据块),不用sys heap,为 freetype流出更多内存使用,在 LVGL V9中lv_conf.h添加如下配置,示例中是预留了1MB的空间,可以根据实际需要调整
1. 从打印信息看是 freetype申请不到内存了,可以改变一下LVGL的内存配置
2. 可以修改一下luban-lite/packages/artinchip/lvgl-ui/lvgl_v9/lvgl/env_support/rt-thread/lv_rt_thread_conf.h
配置LVGL内存使用LV_STDLIB_BUILTIN方式,给的参考中 LV_MEM_SIZE配置成了2MB,可以根据实际情况去修改 lv_rt_thread_conf.zip
连接成功后,dhcp申请需要一些时间,建议重新启动dhcp client后稍等几秒再使用ifconfig查看。另外你那边网络环境这么干净吗?竟然只扫到两个ap,可以和手机扫描出来的比对一下。忽略5G频段的AP,如果与手机扫描出来的差距很大,建议检查一下板子的天线。
建议将lwip中的IP debug使能这样能看到板子与路由器的交互信息,这样能更直观的看到有没有收到路由器的dhcp回复。
可以使用lwip 的socket接口进行编程,这个网络上随便都能找到参考的。如果是http客户端,建议可以使用rtt的webclient,这样较为简单。
wifi的启动、扫描、连接、断开等接口都可以参考“wlan”命令的实现,也可以直接查看/bsp/peripheral/wireless/realtek/Realtek_WIFI_driver_porting_guide_v1.0.doc文档。
编码时建议独立出一个“wifi控制线程”,保证所有的wifi操作都在同一线程中完成。
1. 通过现象猜测现在应该用的是D13x系列芯片
2. 看代码中图片的加载方式是用的静态数组,有可能是存储在SRAM中的,GE不支持从SRAM中读取数据,可以检查一下配置 ELF mem配置,选择PSRAM,
也可以更新一下给的patch,如果数据在SRAM中,回退为软件处理流程:
修改文件路径:packages/artinchip/lvgl-ui/lvgl_v9/lv_drivers/lv_ge2d/lv_draw_ge2d.c
3. 使用静态数组的图片,当图片比较大的时候,可能会占用比较多的存储空间,使用时候需要注意一下
4. 当图片比较多的时候,推荐用 png/jpg格式图片,放在外部flash中,会动态加载
5. 可以参考luban-lite\packages\artinchip\lvgl-ui\aic_demo\dashboard_demo 中从外部文件系统读取图片的配置方式
6. 也可以用我们的UI设计工具进行UI设计:https://aicdoc.artinchip.com
您好,已经发布了,工具下载地址: https://gitee.com/artinchip/tools
CPU 和 DMA 设备之间的交互需要手工操作 Cache,例如:
发送方向:CPU 写数据到内存,为了确保数据全部写入到了内存需要 Clean Cache(只会 Clean 有过写操作的 Cache, Dirty 置位),然后才能启动 DMA 设备从内存读数据。
接收方向:DMA 设备写入数据到内存,为了确保 CPU 能读到最新的数据需要先 Invalid Cache (清除所有已加载的 Cache, Valid 置位),然后才能启动 CPU 从内存读数据。
csi_dcache_clean_invalid_range() = Clean Cache + Invalid Cache,这个操作的主要目的是用于数据方向不明确的情况下的一个 Cache 同步动作。但是通常也可以当成 Clean Cache 操作来使用。
另外 Cache 的基本操作单位为 CacheLine,我们 64bit CPU 的 CacheLine 为 64 字节, 32bit CPU 的 CacheLine 为 32 字节。在操作 Cache 时起始地址和长度都必须 CacheLine 对齐。
Cache 参考文档:
https://cloud.tencent.com.cn/developer/article/2315608
Luban-lite不仅支持RT-Thread,而且支持uC/OS-ii、freeRTOS和裸机环境,这些都是需要支持以太网协议栈的。所以我们设计之初就将lwIP单独分离出来,并且这样也方便随时与lwIP主线同步,不用受RT-Thread的限制。
至于常用的一些应用协议,如HTTPD、webclient、MQTT、PTPD等协议我们目前都是支持的,并且也有量产产品在使用。
这样的缺点就是大家在熟悉Luban-lite SDK的过程中会感到些许复杂,但是使用起来是很稳定的,就Luban-lite发布以来,我们基本没有收到过关于以太网软件问题的反馈。此外我们也写了非常详细的文档对我们的SDK做了说明,我们也在做其他尝试期望能够降低Luban-lite的复杂度,大家可以期待一下!
这个需要找phy厂家要原理图,我们的接口是通用的,和我们对接上就可以,如果您需要D213的原理图可以去gitee上下载我们的官方文档,
您可以直接从gitee 官网上 ( https://gitee.com/keqian/luban-lite )将我们的SDK下载下来进行编译,选择 d13x_demo88-nor_v1.0.0 ,不需要做其他更改,就可以获取到D133EBS镜像文件
页次: 1