OpenEdv-开源电子网

 找回密码
 立即注册
查看: 4978|回复: 16

littlevgl 版本更新的太快了

[复制链接]

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2018-7-27
在线时间
19 小时
发表于 2021-6-5 09:18:17 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 hezhenghedao 于 2021-6-16 16:16 编辑

换新版本,很多老的属性报错,相当于要重新改设计GUI, 发现了一个好用的,NXP的,Gui-Guider-Setup-1.0.0-GA.exe  可以自己生成代码方便多了。

还个问题我的移植的,带freeRTOS,编译没有错误,但是一在循环里加入lv_task_handler();//lvgl事务处理  就会死机了,
没带系统在循环里加入lv_task_handler();//lvgl事务处理  就不会死机了,不知什么原因。

源码,有会的可以看一下.两个都在里面, 无OS的正常,有OS的不行. 开发板探索者407的, 好像是4.3的电容屏. 可以直接下载用.
用的是LITTLEVGL  7.11版本的.

链接:https://pan.baidu.com/s/1hnfAqifixexZROgbtcKrig
提取码:c3ue


有OS的
实了的功能
0001为最早的版本备份,只有按建和指示灯功能,一直向后,功能更加多
0002 有按建和指示灯功能、IIC 24c02 中断方式、有二值信号量、串口DMA循环缓冲。
0003 有按建和指示灯功能、IIC 24c02 中断方式、有二值信号量、串口DMA循环缓冲、OLED显示。
2021-04-01 更新
0004 有按建和指示灯功能、IIC 24c02 中断方式、有二值信号量、串口DMA循环缓冲、OLED显示、高级定时器功能(已加一个执行PWM PA0 为输入的频率采集,脉冲宽度采集)、任务新建功能。
0005 F407demoFreeRTOS-SRAM  包括之前的,及新增SRAM,测试通过,可以使用。
0006 F407demoFreeRTOS-FSMC-LCD 新LCD部分  通过
0007 F407demoFreeRTOS-TOUCH 新增触摸屏 测试通过
0008 F407demoFreeRTOS-STATE  新增RTOS 状态实时打印出每个任务的CPU使用出来  测试通过
0009 F407demoFreeRTOS-LITTLEVGL 新增GUI 测试未通过,会死机



无OS的
LCDprotouchGUI
1、LCDpro工程项目,为cube自动生成就库,当前试通过串口1 DMA, 接收命令, 普通定时器6为1ms中断一次。
2、LED 显示正常,按键输入正常。
3、为hal的库,SRAM测试正常。
4、可以作为最初始的模版使用。
5、新增了LCD启动,触摸屏驱动。
6、移植了littlevgl 可以用触摸屏,及正常显示。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2019-10-29
在线时间
56 小时
发表于 2021-6-5 12:40:01 | 显示全部楼层
你是没用taskDelay,导致任务一直在执行lv_task_handler把
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2018-7-27
在线时间
19 小时
 楼主| 发表于 2021-6-5 13:30:55 | 显示全部楼层
本帖最后由 hezhenghedao 于 2021-6-5 13:43 编辑
MCJ 发表于 2021-6-5 12:40
你是没用taskDelay,导致任务一直在执行lv_task_handler把


while 有任务延时的5ms,不知道为什么一加上,LV_TASK_HANDLER就死。

循环里就是T=0 也就是一开始初始化一下,后面就开始程序。只要我注释//LV_TASK_HANDLER就正常
  for(;;)
  {
        if(t==0)        // 初始化显示屏
        { t++;
                //LCD初始化
                LCD_Init();
                osDelay(100);
                //触摸屏初始化
                tp_dev.init();                                    
                osDelay(500);
                lv_init();//lvgl系统初始化
                osDelay(500);
                lv_port_disp_init();        //lvgl显示接口初始化,放在lv_init()的后面
                osDelay(500);
                lv_port_indev_init();        //lvgl输入接口初始化,放在lv_init()的后面
                osDelay(500);
                //demo_create();
                //demo_test();
        }
        tpscan();
        tp_dev.scan(0);
        //lv_task_handler();
         osDelay(5);  
        //打印CPU使用率 10 秒 一次.
        if(G_print == 1000){G_print=0rintRtosState();}        G_print++;
              
                //处理串口收到数据直接写入队列
        uartproqueue();               
        if(UBoolGet(0,0) == pdPASS) //不等待,否侧没法循环执行任务
        {
                 printf("收到二值信号。\r\n");
        }        

  }
回复

使用道具 举报

12

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2019-10-29
在线时间
56 小时
发表于 2021-6-5 14:03:27 | 显示全部楼层
hezhenghedao 发表于 2021-6-5 13:30
while 有任务延时的5ms,不知道为什么一加上,LV_TASK_HANDLER就死。

循环里就是T=0 也就是一开始初 ...

打断点看看,是进hardfault了,还是什么
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2018-7-27
在线时间
19 小时
 楼主| 发表于 2021-6-5 16:14:07 | 显示全部楼层
MCJ 发表于 2021-6-5 14:03
打断点看看,是进hardfault了,还是什么

IMG20210605161232.png

仿真出错了

回复

使用道具 举报

12

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2019-10-29
在线时间
56 小时
发表于 2021-6-5 18:09:17 | 显示全部楼层

那就看看是不是任务堆栈给的不够
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2018-7-27
在线时间
19 小时
 楼主| 发表于 2021-6-7 08:33:20 | 显示全部楼层
MCJ 发表于 2021-6-5 18:09
那就看看是不是任务堆栈给的不够

试了,加大了(400改1000,200改400),还是一样没有找出问题,这次发现一个,在OS没启动时初始化硬件调用了,osdelay(),死机原因,等会再看看,显示0xfffffff1 hardfault_handler错误,没找到
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2018-7-27
在线时间
19 小时
 楼主| 发表于 2021-6-7 16:10:36 | 显示全部楼层
MCJ 发表于 2021-6-5 18:09
那就看看是不是任务堆栈给的不够

回来再看一下你回的是对的,我之前没注意看你的内容,只改为启动文件startup_stm32f407xx.s的堆栈,没想到任务那个堆栈,谢谢。。。。

今天刚好没事看看论坛,看别人移植的教程,看着也很简单啊,再加上早上堆宅,都改大了,还是有问题,找来找去没结果,后来想了一下,任务的 堆宅  从128 改到1024 , 一下载,测试正常了,晕了, 看来对OS还是不太了解,这个任务是最早建好一直也没动动,以为没什么问题。

osThreadDef(defaultTask, StartDefaultTask, osPriorityRealtime, 0, 1024);
  defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2018-7-27
在线时间
19 小时
 楼主| 发表于 2021-6-7 16:11:17 | 显示全部楼层
只改为启动文件startup_stm32f407xx.s的堆栈,没想到任务那个堆栈,谢谢。。。。

今天刚好没事看看论坛,看别人移植的教程,看着也很简单啊,再加上早上堆宅,都改大了,还是有问题,找来找去没结果,后来想了一下,任务的 堆宅  从128 改到1024 , 一下载,测试正常了,晕了, 看来对OS还是不太了解,这个任务是最早建好一直也没动动,以为没什么问题。

osThreadDef(defaultTask, StartDefaultTask, osPriorityRealtime, 0, 1024);
  defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2018-7-27
在线时间
19 小时
 楼主| 发表于 2021-6-7 16:11:38 | 显示全部楼层
已解决
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2016-7-1
在线时间
12 小时
发表于 2021-6-15 11:59:31 | 显示全部楼层
请问NXP软件如何更换lvgl库的版本号,我看自动生成代码是基于7.4的,我想用最新版,请问怎么修改?
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2018-7-27
在线时间
19 小时
 楼主| 发表于 2021-6-16 16:17:27 | 显示全部楼层
本帖最后由 hezhenghedao 于 2021-6-16 16:19 编辑
liangopenedv 发表于 2021-6-15 11:59
请问NXP软件如何更换lvgl库的版本号,我看自动生成代码是基于7.4的,我想用最新版,请问怎么修改?

没有用8.0的,后来我查了一下,我移的7.11版本的,可以直接用NXP生成的代码,8.0变化很大,不能直接替换。
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-2-15
在线时间
14 小时
发表于 2021-6-16 22:22:06 | 显示全部楼层
liangopenedv 发表于 2021-6-15 11:59
请问NXP软件如何更换lvgl库的版本号,我看自动生成代码是基于7.4的,我想用最新版,请问怎么修改?

同问+1
回复

使用道具 举报

3

主题

177

帖子

0

精华

高级会员

Rank: 4

积分
774
金钱
774
注册时间
2019-11-27
在线时间
87 小时
发表于 2021-7-3 13:04:28 | 显示全部楼层
老哥,用Gui-Guider生成的代码怎么移植到vs上模拟啊
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2018-7-27
在线时间
19 小时
 楼主| 发表于 2021-7-7 09:00:38 | 显示全部楼层
Cheng0717 发表于 2021-7-3 13:04
老哥,用Gui-Guider生成的代码怎么移植到vs上模拟啊

Gui-Guider,自带有模拟器,直接看就行了,直要移植到,开发板上就可以了。

1、生成的代码在Guider工程目录的generated文件夹下:
2、把generated文件夹工程整个复制到我们的keil工程目录中:
3、接着在keil工程添加相关源文件、添加头文件路径:
4、然加上代码就可以运行编译通过就OK了
95F8D5068A2445ECBD623E817E67DFAC.png

回复

使用道具 举报

3

主题

177

帖子

0

精华

高级会员

Rank: 4

积分
774
金钱
774
注册时间
2019-11-27
在线时间
87 小时
发表于 2021-7-8 13:19:57 | 显示全部楼层
hezhenghedao 发表于 2021-7-7 09:00
Gui-Guider,自带有模拟器,直接看就行了,直要移植到,开发板上就可以了。

1、生成的代码在Guider工 ...

谢谢大佬指点
个人CSDN 首页https://blog.csdn.net/qq_41930631
回复

使用道具 举报

6

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2013-8-15
在线时间
60 小时
发表于 2021-7-22 22:37:45 | 显示全部楼层
百度云链接失效了,求再发,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表