1 Star 0 Fork 0

ft2022/synwit_study

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
version 	: V7.9.0

last time 	: 2023_05_17-17:00

compiler 	: linzh

function	: 
1、SFC 模块支持 QSPI 读写片外 SPI-NOR-Flash, 配合 Scatter File 可通过.FLM 下载算法下载 UI 资源至片外 SPI-NOR-Flash

2、FATFS 文件系统管理图片资源文件, 可将片外 SPI-NOR-Flash 充当 U 盘插入电脑识别

3、LVGL 实现 页面跳转、GIF 切图、桌面滑动等 UI 效果

4、JPEG 硬件解码器可解码 JFIF-BCT 格式的 jpg 图片, 也可解析 MJPEG 编码的 AVI 视频文件

5、DAC 播放 PCM 编码的 WAV 格式音频或 AVI 视频音轨

6、USB 2.0 Full Speed 

7、IAP 实现 UserBoot 功能

Revision History:
TODO: 增加 UserBoot 线性地址写入、串口升级功能,同时更新工程目录下的 APP 固件对应示例.

2023/05/15: 增加 IO 模拟 SPI 时钟配置项、(W25Qxx) SPI_Flash 的 Quad SPI / QPI 操作模式,测试读写驱动通过.
修复 ui_update 文件管理页的弹窗在 O-Fast 优化下偶现卡死的情况.
优化 TP 驱动、重新分配 ISR 资源、增加低功耗中间层.

2023/05/10: 同步 Lib 为 commits-2023.04.17

2023/03/22: 更新 Lib-230320, 添加 奕力ILI2117A 触摸驱动, 优化 DAC 静音控制逻辑.

2023/02/23: 测试 JLT35002A-V2 横竖屏转换, 精简部分注释/更新规范.

2023/02/08: 修订工程组织命名框架, 修改 UI/Resourc 内 img_hash_t 结构以提供用户自定义素材的接口, 例:以便适配 NXP 上位机自动生成 UI 资源相关代码.
增添 LCD_JLT35002A-V2(ILI9488)、TP_CST328 驱动
为配合低功耗功能,封装 BSP 的端口初始化。

2023/01/12: 修复当用户通过 USBD_MSC 拷贝结束后无法第一时间识别出拷贝完的文件, 重新挂载文件系统即可解决.

2023/01/11: 添加 TP_Tango C32 触摸驱动, 

2023/01/05: 添加 sleep / stop 功能, 并对 34S 系列型号 Demo 板进行硬件处理以测试实际功耗, 在 MCU 浅睡眠下 约为 1 mA 左右, 除去个体差异, 最低应保持在 1.5 mA 以内.

2022/12/27: 优化 version.h 注释, 修正 CE-48Pin LCD_RST 端口与实际不符, 修正 TP_FT5206 驱动偶现触摸无响应.

2022/12/23: 重构 UI 主界面的各个页面布局设计、事件回调等部分, 不涉及其他功能性模块.

2022/12/09: 修复 CE IO_I2C() 传参漏一个参数, 以及统一背光调节 API .

2022/12/07: 统一规范注释说明以使用 Doxygen 工具自动化生成帮助文档及函数调用逻辑框图, 便于用户查阅理解.

2022/11/30: 添加对每个模块移植时的依赖项说明, 同时去除之前部分过多的注释, 进一步精简语言, 免得看起来太乱, 个别用户找不到重点.

2022/11/29: 进一步降低模块之间耦合, 对单一模块尽量降低对外部依赖项以实现开箱即用, 同时也便于移植至 SWM 其他系列芯片. 

2022/11/28: FATFS 更新为最新的 R0.15 版本, 增强对 RTOS 的支持.

2022/11/10: 测试 U 盘播放全屏视频, 速度不足, 较小的区域视频则可以实现.

2022/11/08: 适配 SWM34SCET6_A001 硬件PCB, 调整 中文外部字库 素材源, 测试通过.

2022/11/04: 测试全局, 编写 UserBoot 使用说明.

2022/11/02: 重新设计优化 UI 启动引导页的 UI 布局, 并加入 USB_Device-MSC 与 UserBoot 应用, 功能测试通过.

2022/10/25: 编写 UI 启动页使用说明.

2022/10/24: 适配 SWM34SCET6 硬件 PCB 端口, 添加 ISP-A8 脚管理员特权功能(类似于工厂模式).

2022/10/21: 更新 Lib-221021, 预留 SWM34SCET6 硬件版本接口.

2022/10/19: 更新 Lib-221019, 解决 -Ofast 优化下的寄存器访问异常, 修正 480*480 复位时序错误.

2022/10/17: 对其余各目标生成的 app 进行 userboot 功能测试通过.

2022/10/14: userboot 功能添加 mbedtls/AES 加密(也可用 tiny-AES-c ), 统一接口, 并编写对应说明.

2022/10/12: 更新 Lib-221012, 对比 lvgl-v7 纯净版优化提升帧率.(待进行 UserBoot / IO_QPSI 功能测试)

2022/10/11: 更新 Lib-221011, 优化 bsp / dev_lcd.c 适配各类屏驱(尽量避免代码块不连续), 便于用户阅读

2022/10/09: 增加 IO_QSPI 四线方式, 优化 UI 启动引导页 点击按钮时交互的反馈提示(以消息框的形式)

2022/10/08: 更新 Lib-220930(增加 USBH_MTP ), 增加 IO_SPI 写入方式, 修复当外部磁盘(SD卡/U盘)根目录包含过多文件时进入 UI 启动引导页的文件管理器中扫描文件显示空白的问题.

2022/10/01: 增加 字库(font_lib.c) 使用说明, 收到反馈综合例程过于复杂/臃肿, 开始着手降低不同模块之间的依赖, 便于用户提取独立功能应用, 对于 UI 交互逻辑显示部分耦合过深, 须等待后期重构.

2022/09/30: 修正用户自定义分辨率编译出错, 增加 TP 函数指针接口判空, 增加文件接口易用性.

2022/09/27: 修正 dev_dac.h 未包含 version.h 导致静音 IO 宏定义与预期不符,TP - FT5206 工作扫描方式由查询修改为中断, 测试 SFC->TIM 初始赋值.

2022/09/22: 添加 UserBoot 功能, 带 CRC 完整性校验(未测试完成)

2022/09/21: 统一整合全型号Demo板管脚排布, 微调 UI 启动引导页样式, 修正 SPI-Flash 进行 Delete_File 后实际未完全清空存储, 导致后续 Copy_File 过程中提示目录已满的错误.

2022/09/20: 增加文件列表更新功能, 统一接口/中断服务函数, 预留 OTA 升级

2022/08/31: 优化 ui 启动引导页面/播放音视频

2022/08/25:更新 Lib-220824.

2022/08/24:添加对正点原子 800*480 7 寸 ATK_MD0700R 屏支持, 效果待优化.

2022/08/22:添加 SWM34SVET6 PCB A001/A002 硬件版本测试支持.

2022/08/16:添加 USB_H/D_Driver, 测试全部目标完毕先输出一版.

2022/07/29:尝试 NXP 与 LVGL 官方 GUI 上位机, 测试 SDRAM 两种管理方式, 优化音视频播放API, 去除 SDRAM-Wav 方式.

2022/07/21:重写 UI 加载部分, 适配 UART / SD / SFC / USB 各类加载方式.

2022/07/06:为更好利用及使用 SDRAM 空间, 对 load_file 部分进行重写, SFC 使用 固件库的 FlashDisk .

2022/07/04:适配 SWM34S VET6_Pin100 显示开发板脚位, 增加 ARGB888 屏驱演示(向下兼容 RGB565 ), 故素材更新为两套 ARGB888 / RGB565, 较大幅度改动 UI 加载方式.

2022/05/10:添加 Lib_SimplLCD_RGB ugui 基本显示例程的 LVGL 实现.

2022/05/06:变更 MP 量产版芯片引脚,更新 SWM341_Lib-220428 库,增添 DMA2D 支持与 三种 LVGL 配置缓冲区方式,提升 SDRAM 频率至系统时钟一分频(即与主频相同).

/**
 *******************************************************************************************************************************************
 以下为 MPW 芯片测试
 *******************************************************************************************************************************************
 */

2022/03/31: 补充集成 LVGL 官方 Demo , 更新 SWM341_Lib-220325 库, 增加 SPI-Flash 读 ID 与 Quad 模式开关.

2022/03/21: 补充目标选择说明.

2022/03/09: 优化程序层次结构, 集成不同分辨率 RGB 屏 UI 例程 至同一工程内, 后续待添加 MPU-I8080 屏例程.

2022/03/08: 修正个别型号的 spi-flash 挂载文件系统频繁失败的错误.

2022/02/21: 增加版本管理, 已增加创建多目标单工程, 后续可创建多工程的单工作空间.

2022/02/15: 
①重构原有 SDRAM 内存管理;
②GIF 实现由 原来的:提前在SDRAM加载一组图片后,再依次显示; 更改为: 将图片从 SPI-Flash 内逐次单张加载至 SDRAM 并 同时显示;
③修正 音频播放所用的 DAC_BUFF 储存至 SDRAM 引起的 与 LCD_DMA 竞争 访问 SDRAM 的总线带宽 导致屏幕闪烁的问题;(等待下一批次芯片提高SDRAM频率再次尝试)

2022/01/25: 修订之前遗留的缺陷, 修复JPEG解码错误引起的播放卡死、画面抖动等异常,解耦播放局部区域视频的函数接口,并增加透明度调节等接口,实现视频全屏跟随触摸。

2022/01/07: 
①在开机视频播放界面,增加 触摸点击即快速进入主页面 的功能,便于快速测试全功能;
②因SD卡拷贝素材至SPI-Flash过程太漫长,且Demo板上没有LED指示灯,故在其拷贝过程中加入背光闪烁以提示用户程序正进行拷贝中。

2022/01/04: 修复特定图片解码错误的bug,原因及措施:memset(&Jfif_Info, 0, sizeof(Jfif_Info));//必须清空上一次解析图片格式残留的信息

2021/12/29: 增加 音频 播放选项: ①QSPI -> SRAM -> DMA_DAC  ②SDRAM -> SRAM -> DMA_DAC 详见:load_mv.c

2021/12/16: 增加 按键音效 即单独播放 WAV 音频,目前还有一定滞后,音视频播放调整为状态机模式,避开中断内执行从而拖慢时长。

2021/12/15: 移除 LVGL 文件系统接口,直接采用 FATFS 的 API,修订部分全局宏增加程序健壮性,更改程序文件夹分类,增加 DAC 单独播放 WAV 音频,结合视频流播放音轨。

2021/11/09:使用 SFC 管理 SPI-Flash, 移除原有的 SFUD 库。

2021/10/29:更改引脚,适应最新一版341

2021/10/26:增加 播放局部视频 功能,利用中断机制,可同时操作 UI 界面, 
补充测量    
/* 480 * 272 全屏 RGB-565 jpeg 图解码速度 
 * jfif_parse + jpeg_decode = 5 ms 	//全过程
 * jfif_parse = 1 ms  				//软件解析
 * jpeg_decode = 4 ms 				//硬件解码
 */

2021/10/20:优化拖动效果第二版,卡顿、延迟原因定位为TabView的全局背景为图片控件,在滑动时图片细节过多,会导致LVGL软件偏移SDRAM的内容过多,形成迟滞感,改为纯色背景后,滑动效果提升明显。

2021/09/28:统一编码规范,完善注释说明,精简程序逻辑。

2021/09/26:对于 176 PIN 的 341 最小系统板外挂的 Winbond-SDRAM,需要降低系统时钟频率至 140MHz 才能正常播放视频,初步查看规格书后,猜测原因为硬件走线问题所导致的干扰,待后续确认。

2021/08/27:更改 SFUD 库 sfud_port.c 与 sfud.c 并增加 DMA 单线DMA读写 与 DMA 四线 QSPI 读,采用宏定义方式切换,具体速度提升暂未测量。

2021/08/10:针对 MPU 屏做出适配调整,如素材大小、视频/图片加载方式。

2021/08/02:优化滑动效果,更改触摸方式(扫描 -> 中断)提升触摸灵敏度,轻滑即可翻页。

2021/08/01:图片噪点原因定位为:LCD 源数据寄存器须为字对齐,即LCD控制器去取图片数据的地址必须是低 2 位为 0 (详见 SWM341 数据手册 LCD 控制器源数据寄存器章节),手动调整内存指针对齐后,该现象消失。

2021/07/31:实现拖动效果,已优化过一版(卡顿现象稍微减弱),但目前拖动仍比较费力,需要滑动整个屏幕(待后续在优化),调整素材图片分辨率,目前暂时可显示,但仍有噪点,待定原因。

2021/07/29:BUG解决:在调试播放 AVI 视频 与 使用LVGL控件应用时,两者不能同时运行,会导致程序挂掉的情况
定位原因为:lvgl_porting_disp.c 中将 LCD控制器源数据寄存器 (LCD->L[0].ADDR) 初始化为 SDRAMM_BASE,
而播放视频时须提前更改为与 JPEG解码—输出RGB数据的地址 保持一致,这将导致原来的程序中 LVGL 依旧去原来的全屏缓冲区中 取数据 (地址与RGB解码输出的不一致),
播放完后恢复 LCD控制器源数据寄存器(LCD->L[0].ADDR) 地址为 SDRAMM_BASE,但并未更改成功

解决:在播放 video 前后加入 LCD->CR |= (1 << LCD_CR_VBPRELOAD_Pos); //1 帧显示开始时,将层配置寄存器的值加载到层工作寄存器中
并且更改 lvgl_porting_disp.c 中 LVGL 缓冲区由 全屏单缓冲 改为 全屏双缓冲

完整逻辑代码如下:
    LCD->L[0].ADDR = (uint32_t)Resource_Addr_Point; //LCD取源数据地址
    LCD->CR |= (1 << LCD_CR_VBPRELOAD_Pos);         //1 帧显示开始时,将层配置寄存器的值加载到层工作寄存器中
	JPEG_OUTSET.RGBAddr = Resource_Addr_Point;      //JPEG 输出RGB像素数据的地址
	//开始解码显示

2021/07/28:变更插入 SD 卡后的逻辑,SD 卡插入时优先播放 SD 卡视频(高等质量),并执行 SD 与 Flash 内的文件校验,若均符合更新下载要求,则执行拷贝更新动作
否则仅校验 Flash 内文件列表,完整且正确则播放 Flash 内视频(中、低等质量)

2021/07/27:在 ICON 结构体中加入 其对应位置与大小 的对应变量,进一步加强内聚,实现页面 ICON 模块化式布局,并优化程序结构,去掉部分可替代的全局变量

2021/07/26:采用 JPEG 硬件解码器解码 JPEG 图片素材至 SDRAM 内,可省下大量 SPI-Flash 的空间(JPEG图很小),且能明显地加快了上电加载速度,适合对 32S 上电加载素材速度较敏感的应用场景

注意:LVGL右下角自带CPU/帧率显示:lv_conf.h 中 
/*1: Show CPU usage and FPS count in the right bottom corner*/
#define LV_USE_PERF_MONITOR     0

/* Update_Time:2021_09_30
 * 编码规范:   统一使用下划线命名法
 * 宏:         全大写
 * 局部变量:   全小写
 * 全局变量:   每个单词首字母大写,其余小写 
 * 用户函数:   全小写
 * 固件库函数:	每个单词首字母大写,其余小写 
 */

空文件

简介

synwit study 展开 收起
C 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ft2022/synwit_study.git
git@gitee.com:ft2022/synwit_study.git
ft2022
synwit_study
synwit_study
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385