WhyCan Forum

本站无需注册,无需积分,无需回复可下载所有资料,如果真的喜欢小站,请您注册之后请至少回复一个帖子激活Id,谢谢支持! 站长QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2019-01-17 20:17:15

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 56

荔枝上Nano跑LittlevGL2RTT 失败

参考这个帖子:玩转RT-Thread之荔枝派Nano(全志F1C100S) 新手上路
https://whycan.cn/t_943.html

按照帖子里面说的,使用了rttbootloader_f1c100s_v1.0.0.bin这个bootloader。
现在可以亮屏,也可以串口输出,GPIO,PWM,定时器也都是好的。驱动来自于这个帖子:https://whycan.cn/t_1457.html
但是在env里面使能littlevgl2rtt后,生成一个500多K的bin文件时。烧到flash运行时,就不正常了。只是使能了lvgl,没有包含它们的头文件,没有调用。

串口信息如下:
---------------start------------------
\ | /
- RT -     Thread Operating System
/ | \     3.0.3 build Apr  5 2018
2006 - 2018 Copyright by rt-thread team
[SFUD]Find a Winbond flash chip. Size is 16777216 bytes.
[SFUD]gd25qxx flash device is initialize success.
[Flash](packages/EasyFlash/src/ef_env.c:144) ENV start address is 0x00000000, size is 1024 bytes.
[Flash](packages/EasyFlash/src/ef_env.c:768) Calculate ENV CRC32 number is 0x75A6C872.
[Flash](packages/EasyFlash/src/ef_env.c:780) Verify ENV CRC32 result is OK.
[Flash]EasyFlash V3.0.4 is initialize success.
[Flash]You can get the latest version on https://github.com/armink/EasyFlash .
[Flash](packages/EasyFlash/src/ef_env.c:768) Calculate ENV CRC32 number is 0x6CBDF933.
[Flash]Erased ENV OK.
[Flash]Saved ENV OK.
Hit any key to stop autoboot : 3Hit any key to stop autoboot : 2Hit any key to stop autoboot : 1Hit any key to stop autoboot : 0
run application
begin read...
run addr:0x80000000

\ | /
- RT -     Thread Operating System
/ | \     3.1.1 build Jan 17 2019
2006 - 2018 Copyright by rt-thread team
(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244
--------------end------------------


不包含lvgl时的正常信息如下:
------------start--------------
32 MiB
Trying to boot from sunxi SPI

\ | /
- RT -     Thread Operating System
/ | \     3.0.3 build Apr  5 2018
2006 - 2018 Copyright by rt-thread team
[SFUD]Find a Winbond flash chip. Size is 16777216 bytes.
[SFUD]gd25qxx flash device is initialize success.
[Flash](packages/EasyFlash/src/ef_env.c:144) ENV start address is 0x00000000, size is 1024 bytes.
[Flash](packages/EasyFlash/src/ef_env.c:768) Calculate ENV CRC32 number is 0x75A6C872.
[Flash](packages/EasyFlash/src/ef_env.c:780) Verify ENV CRC32 result is OK.
[Flash]EasyFlash V3.0.4 is initialize success.
[Flash]You can get the latest version on https://github.com/armink/EasyFlash .
[Flash](packages/EasyFlash/src/ef_env.c:768) Calculate ENV CRC32 number is 0x6CBDF933.
[Flash]Erased ENV OK.
[Flash]Saved ENV OK.
Hit any key to stop autoboot : 3Hit any key to stop autoboot : 2Hit any key to stop autoboot : 1Hit any key to stop autoboot : 0
run application
begin read...
run addr:0x80000000

\ | /
- RT -     Thread Operating System
/ | \     3.1.1 build Jan 17 2019
2006 - 2018 Copyright by rt-thread team
periph_get_pll_clk:600000000
cpu_get_clk:408000000
ahb_get_clk:200000000
apb_get_clk:100000000
msh />
------------end--------------



请问,这一般是什么原因呢?

离线

#2 2019-01-17 20:24:37

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 56

Re: 荔枝上Nano跑LittlevGL2RTT 失败

main函数,只有几条打印信息
int main(int argc, char * *argv)
{
    rt_kprintf("periph_get_pll_clk:%d\n", periph_get_pll_clk());
    rt_kprintf("cpu_get_clk:%d\n", cpu_get_clk());
    rt_kprintf("ahb_get_clk:%d\n", ahb_get_clk());
    rt_kprintf("apb_get_clk:%d\n", apb_get_clk());

    return 0;
}

离线

#3 2019-01-17 20:58:03

smartcar
会员
注册时间: 2018-02-19
累计积分: 370

Re: 荔枝上Nano跑LittlevGL2RTT 失败

会不会因为 bin 文件超过指定加载的尺寸了?

离线

#4 2019-01-17 20:58:57

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: 荔枝上Nano跑LittlevGL2RTT 失败

这个问题我邀请 燕十三哥过来回答, 不过貌似现在不在线, 稍等等

离线

#5 2019-01-17 22:37:28

pineshen
会员
注册时间: 2018-12-24
累计积分: 4

Re: 荔枝上Nano跑LittlevGL2RTT 失败

没有LCD驱动,所以崩溃了,(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244

离线

#6 2019-01-17 23:02:57

smartcar
会员
注册时间: 2018-02-19
累计积分: 370

Re: 荔枝上Nano跑LittlevGL2RTT 失败

pineshen 说:

没有LCD驱动,所以崩溃了,(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244

好像是哦, 应该是这个指针为空造成的了.

离线

#7 2019-01-18 08:51:10

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 56

Re: 荔枝上Nano跑LittlevGL2RTT 失败

pineshen 说:

没有LCD驱动,所以崩溃了,(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244

我只开了一个打印的串口,其他外设全关了。

离线

#8 2019-01-18 09:18:02

basicdev
会员
注册时间: 2017-10-02
累计积分: 159

Re: 荔枝上Nano跑LittlevGL2RTT 失败

duckduckgo 说:
pineshen 说:

没有LCD驱动,所以崩溃了,(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244

我只开了一个打印的串口,其他外设全关了。

这个断言错误一定要解决,才能继续跑

离线

#9 2019-01-18 17:14:51

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 56

Re: 荔枝上Nano跑LittlevGL2RTT 失败

smartcar 说:

会不会因为 bin 文件超过指定加载的尺寸了?

跟这个应该关系很大。

离线

#10 2019-01-18 17:17:48

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 56

Re: 荔枝上Nano跑LittlevGL2RTT 失败

多谢楼上各位的回复。
现在已经恢复正常了。在env里面把LittlevGL2RTT的demo example取消勾选即可。
FluxBB bbcode 测试

最近编辑记录 duckduckgo (2019-01-18 17:18:16)

离线

#11 2019-01-18 17:24:37

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,403

Re: 荔枝上Nano跑LittlevGL2RTT 失败

YA831img.png

那是什么原因, 超过预设加载的大小?

离线

#12 2019-01-18 18:04:20

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 56

Re: 荔枝上Nano跑LittlevGL2RTT 失败

晕哥 说:

https://whycan.cn/files/members/3/YA831img.png

那是什么原因, 超过预设加载的大小?

应该不是。我用的是RT-Thread的OTA工具,下面是分区表:
FluxBB bbcode 测试
勾选demo-example以后,生成的bin文件560K(这里很奇怪,明明都没有调用lvgl的任何函数,bin文件怎么会变大?)确实是超出了448K。
但是我后面取消勾选demo-example以后生成了200K的bin文件,后面用00填充,做了两个bin,一个400K,一个597K,同样的方法烧进去,都可以用。说明不是大小的问题。

原因应该在LittlevGL2RTT那里。后面找到原因了在这个帖子下面补充一下。

rttbootloader_f1c100s_v1.0.0.bin启动的时候还要等待按键,严重拖慢速度,我发邮件问过了,这个东西不会开源(可能涉及到usb部分,与全志签了NDA?)。用IDA分析了一下,也没找到要修改的位置。后面还是参考Xboot的代码自己写一个bootloader比较好。

离线

#13 2019-04-17 20:39:26

ermao
会员
注册时间: 2019-03-04
累计积分: 9

Re: 荔枝上Nano跑LittlevGL2RTT 失败

大佬 你的解决了吗?我的也是卡在这里...

离线

#14 2019-04-18 09:03:49

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 56

Re: 荔枝上Nano跑LittlevGL2RTT 失败

ermao 说:

大佬 你的解决了吗?我的也是卡在这里...

用官网的LVGL吧,加进去就好了。

离线

#15 2019-09-01 22:27:55

junying
会员
注册时间: 2019-09-01
累计积分: 3

Re: 荔枝上Nano跑LittlevGL2RTT 失败

我也是把example取消了,RTT正常运行,但LCD仍然没有显示,且在List_thread命令中似乎没有看到LittleGL2RTT的线程,不知怎么测试它已经正常运行?

离线

页脚