项目概述
这个开源项目是基于Zedboard开发板的异构多处理器(AMP)实现,使用了VGA、FreeRTOS、LVGL和USB外设。借助于开源项目FreeRTOS、LVGL和TinyUSB,开发了一个自定义的“VGA IP” FPGA模块,用于驱动Zedboard上的LVGL图形库。这个项目对于使用嵌入式系统构建复杂项目有很大的参考价值。
实现说明
这个开发板的MCU是双核心架构。
• ARM核心0运行一个FreeRTOS实例,实现了FAT文件系统、TCP/IP协议栈和图形库。
• ARM核心1也运行一个FreeRTOS实例,只有一个任务,用于驱动Zedboard上的OLED显示屏。
• FPGA VGA接口已成功工作在1440 x 900 @ 60 Hz的分辨率下。示例的配置设置为1024 x 768 @ 60 Hz。代码中定义了一些标准分辨率,可以使用,但目前没有动态选择的功能,分辨率的改变需要重新编译固件。很容易添加一些代码以实现运行时更改显示分辨率,并且还可以为其他分辨率创建自定义的表项。
• 有一个USB HID实现,支持键盘、鼠标和触摸屏,是基于Github上的TinyUSB项目进行修改的。
实现的功能
• 基于标签页的GUI,可以配置基于FreeRTOS和TCP/IP的系统的基本设置,以及GUI的主色调和深色/浅色主题。
• 基于SD卡的文件系统,使用FreeRTOS+FAT,并实现了一个简单的日志系统。
• 基本的FTP服务器,可以访问文件系统以收集日志和配置文件,还可以更新系统上的BOOT.BIN文件进行固件更新。
• 基本的NTP客户端和服务器应用程序。
• 修改后的LVGL小部件演示,在GUI的一个标签页中运行。
• 有一个“系统信息”标签页,显示FreeRTOS任务和统计信息。
结论
lv_port_xilinx_zedboard_vitis项目是一个基于Zedboard开发板的LVGL多核AMP实现,集成了VGA、FreeRTOS和USB外设。通过使用开源项目和自行开发的IP模块,该项目提供了一个功能强大的图形界面和多任务处理能力。同时,该项目还提供了FTP服务器、文件系统和NTP功能。
项目地址:https://github.com/lvgl/lv_port_xilinx_zedboard_vitis