参考这个帖子:玩转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--------------
请问,这一般是什么原因呢?
离线
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;
}
离线
会不会因为 bin 文件超过指定加载的尺寸了?
离线
没有LCD驱动,所以崩溃了,(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244
离线
没有LCD驱动,所以崩溃了,(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244
好像是哦, 应该是这个指针为空造成的了.
离线
没有LCD驱动,所以崩溃了,(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244
我只开了一个打印的串口,其他外设全关了。
离线
pineshen 说:没有LCD驱动,所以崩溃了,(dev != RT_NULL) assertion failed at function:rt_device_open, line number:244
我只开了一个打印的串口,其他外设全关了。
这个断言错误一定要解决,才能继续跑
离线
会不会因为 bin 文件超过指定加载的尺寸了?
跟这个应该关系很大。
离线
多谢楼上各位的回复。
现在已经恢复正常了。在env里面把LittlevGL2RTT的demo example取消勾选即可。
最近编辑记录 duckduckgo (2019-01-18 17:18:16)
离线
https://whycan.cn/files/members/3/YA831img.png
那是什么原因, 超过预设加载的大小?
应该不是。我用的是RT-Thread的OTA工具,下面是分区表:
勾选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比较好。
离线
大佬 你的解决了吗?我的也是卡在这里...
离线
大佬 你的解决了吗?我的也是卡在这里...
用官网的LVGL吧,加进去就好了。
离线
我也是把example取消了,RTT正常运行,但LCD仍然没有显示,且在List_thread命令中似乎没有看到LittleGL2RTT的线程,不知怎么测试它已经正常运行?
离线